Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/10/2011, 06:10
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
Respuesta: Excluir IDs de consulta

Si lo que quieres es aquellos equipos que no pertenecen a una división, lo que corresponde es usar LEFT JOIN, como jurena te dice. Es lo mismo que yo proponía.
No puedes usar la coma porque la coma se parsea como un INNER JOIN y sólo te devolverá los que sí estén relacionados. Para los no relacionados corresponde usar lo que te decimos.
Ahora bien, a nivel de diseño, si un equipo sólo puede corresponder a una única división, la tabl aequipos_división carece de sentido, porque sólo debería existir si un equipo ha pertenecido históricamente a otras divisiones, porque en ese caso la relación es N:N y existe un discriminante (fecha u otra cosa) para cada caso.
En caso de ser así, el LEFT JIN requiere que determines mejor cuál es el período que estás analizando, ya que debe ser uno donde los equipos listados en la primera tabla no hayan pertenecido a ninguna división, o o hayan pertenecido jamás a las divisiones analizadas.
Otro detalle sería que en el contexto del resultado buscado, la tabla "divisiones" no es necesaria, porque el dato relevante ya está en "equipos_divisiones", y se puede obtener lo que se requiere con una subconsulta.
Según tu caso sería:
Código MySQL:
Ver original
  1.     E.id,
  2.     E.nombre_equipo
  3. FROM equipos E
  4.     LEFT JOIN (SELECT * FROM equipo_division id_liga=$liga_actual) ED  ON E.id = ED.id_equipo
  5.     ED.id_liga IS NULL
  6. ORDER BY nombre_equipo
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)