Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/03/2008, 19:24
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: ¿Alguien me puede decir qué está mal en esta consulta?

El hecho de que en un server funcionara y en otro no puede ser por un conflicto de versiones. Habría que ver qué versión de MySQL está corriendo en cada uno.
En cuanto a la consulta en sí, yo la encuentro personalmente confusa. Me parece que estás cruzando segmentos que MySQL no puede resolver adecuadamente.
Para que se entienda mejor, un segmento de condicionales como:
Código:
 AND  (`S`.`assignment_id` = 1  OR  `S`.`assignment_id` IS NULL )
AND  `S`.`original_id` IS NULL
no pertenece al predicado de un LEFT JOIN ... ON, sino a un WHERE.
Esto es, un JOIN establece una relación entre valores de dos campos de dos tablas distintas, condición que se determina en el ON.
El segmento que escribiste no determina ningua relación entre las dos, por lo que MySQL debe estar haciendo otra cosa y entremezclandola con el ON. Es posible que esté tomando 'U.user_id' como alias o como tabla de origen de otro valor, por lo que no puede resolverlo y lo declara desconocido (estoy hipotetizando, nunca vi una consulta escrita así en todos estos años).
Mi sugerencia es que cambies de lugar ese segmento y lo pongas donde tendría uso lógico: en el WHERE, por ejemplo:
Código:
SELECT `U`.`user_id` AS `authId`, 
       CONCAT(`U`.`nom`, ' ', `U`.`prenom`) AS `name`,
	COUNT(`S`.`id`) AS `submissionCount`, `S`.`title`, 
       MIN(`S`.`creation_date`)
FROM `AcaDB`.`user` as `U`, `AcaDB`.`cours_user` as `CU`
LEFT JOIN  `No2008287`.`wrk_submission` AS `S` 
ON  `S`.`user_id` = `U`.`user_id`
WHERE `U`.`user_id` = `CU`.`user_id` 
     AND `CU`.`code_cours` = '2008287'
     AND (`S`.`assignment_id` = 1  OR  `S`.`assignment_id` IS NULL)
     AND `S`.`original_id` IS NULL 
GROUP BY  `U`.`user_id`
ORDER BY `CU`.`statut` ASC, `CU`.`tutor` DESC, 
     `U`.`nom` ASC, `U`.`prenom` ASC