Ver Mensaje Individual
  #10 (permalink)  
Antiguo 22/06/2014, 17:29
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: 1 consulta, 4 partes

Cita:
Iniciado por piwy Ver Mensaje
Código MySQL:
Ver original
  1. SELECT A.lastlogin, A.username, IFNULL(PP.points, 0) coins
  2.     FROM authme A
  3.         LEFT JOIN playerpoints PP ON A.username= PP.playername
  4.     WHERE TRUE OR PP.playername IS NULL

Hay una cosa que no entiendo aquí y es el uso de
Código MySQL:
Ver original
  1. TRUE OR PP.playername IS NULL
Es un caso estandar: Que devuelva todo (true no distingue), o que devuelva lo que no coincide en la segunda.
Mas o menos en todos los DBMS se usa de la misma forma cuando no tienes otras condiciones para el WHERE.
Si sólo pusieras
Código MySQL:
Ver original
  1. campo IS NULL
sólo devolvería lo que no coincide, excluyendo todo lo demás.
Y si no lo pones, podría actuar como un INNER JOIN, y excluir las no coincidentes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)