[Php-avanzado] Duda con query mysql
Javier Alvarez
neiker en gmail.com
Jue Ene 6 14:39:32 ARST 2011
Buenas.. Desde hace un rato que me estoy rompiendo la cabeza con esto y no
logro entender que es..
La web, es un directorio de sitios.. y la idea es obtener las 3 ultimas
subcategorias en donde se hayan cargado sitios.. Siendo que cada sitio está
en una subcategoria y cada subcategoria a su vez en una categoria (3 tablas:
sites, categories, sub_categories).
En teoria la query tendrÃa que se asÃ:
$query = "SELECT * FROM sub_categories LEFT JOIN categories ON
sub_categories.category_id=categories.category_id WHERE subcategory_id IN
(SELECT DISTINCT subcategory_id FROM sites ORDER BY site_add_date DESC)
LIMIT 3";
Peor no funciona..
Si ejecuto la subquery, si me devuelve correctamente ordenados los id de las
categorias.. O sea, esto:
$query = "SELECT DISTINCT subcategory_id FROM sites ORDER BY site_add_date
DESC";
Me devuelve 188, 32, 477, 465, 577, etc.. Pero cuando uso la query
completa, es como si la subquery devolviera 3, 4, 5, 6, 8, 9, etc.. Como si
no le diera bola al ORDER BY.
Si cambio la subquery y le pongo a mano los ids que devuelve la subquery por
separado, si funciona.. o sea, asÃ:
$query = "SELECT * FROM sub_categories LEFT JOIN categories ON
sub_categories.category_id=categories.category_id WHERE subcategory_id IN
(188,32,477,465,577) LIMIT 3";
Alguien tiene idea de que puede ser? Porque yo no :P
Saludos!
--
Javier Alejandro Alvarez
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20110106/de8d53a4/attachment.htm
Más información sobre la lista de distribución Php-avanzado