MySQL - me estoy volviendo loco

 
Vista:

me estoy volviendo loco

Publicado por Eugenio Ludvig (1 intervención) el 05/06/2008 02:03:26
Estimados:
Los consolto por un problema que tengo en una aplicación de e-commerce que estoy ensayando.
Tengo instalado en mi servidor local el MySQL 3.23.49 y la aplicación funciona correctamente.
He aquí, que cuando la subo al servidor web que tiene instalado el My SQL 5.0.37 me da un error de este tipo:

1054 - Unknown column 'p.products_id' in 'on clause'

select count(*) as total from products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id, products_to_categories p2c left join specials s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '3' and p2c.categories_id = '20'

[TEP STOP]

la línea a la cual hace referancia es:

$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . $languages_id . "' and p2c.categories_id = '" . $current_category_id . "'";

no puedo encontrar el error de sintaxix de una versión a la otra.

Si alguien puede darme una mano, agradecido desde ya............

Saludos cordiales

Eugenio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:me estoy volviendo loco

Publicado por Gonzalo GC (339 intervenciones) el 05/06/2008 03:10:30
Prueba haciendo que la cadena de INNER JOIN sea:

SELECT COUNT(+) FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.campo = T2.campo INNER JOIN Tabla3 T3 ON T1.campo = T3.campo INNER JOIN Tabla4 T4 ON T3.campo = T4.campo WHERE ...

Es decir, pon la condición ON inmediatamente después del par de tablas y encadenalos de esa forma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar