Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Mostrar solo los registros que no tengan coincidencias con otra tabla

Estas en el tema de Mostrar solo los registros que no tengan coincidencias con otra tabla en el foro de Mysql en Foros del Web. Esto es lo contrario a lo que estoy acostumbrado a hacer, generalmente busco coincidencias entre tablas usando LEFT JOIN, sin embargo hoy necesito hacer lo ...
  #1 (permalink)  
Antiguo 11/01/2013, 12:16
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Mostrar solo los registros que no tengan coincidencias con otra tabla

Esto es lo contrario a lo que estoy acostumbrado a hacer, generalmente busco coincidencias entre tablas usando LEFT JOIN, sin embargo hoy necesito hacer lo contrario.

Tengo la tabla usuarios, que contiene todos los usuarios del sistema

USUARIOS
id | name
1 | hugo
2 | paco
3 | luis

Y la tabla logueos, que contiene los logueos que han hecho esos usuarios

LOGUEOS
id | user | date
1 | 1 | 01/01/2013
2 | 2 | 01/01/2013
3 | 2 | 01/01/2013
4 | 2 | 01/01/2013

Según esto Hugo ha logueado una vez, Paco ha logueado 3 veces y Luis nunca se ha logueado.

Necesito imprimir la lista de usuarios que nunca se han logueado (solo debería mostrar a Luis)

Esto es lo más lejos que he llegado:

Código MySQL:
Ver original
  1. SELECT usuarios.name,logueos.id FROM usuarios
  2. LEFT JOIN logueos
  3. ON usuarios.id=logueos.user
  4. GROUP BY usuarios.id

Eso imprime lo siguiente:

NAME | id
hugo | 1
paco | 2
luis | NULL

Lo cual es un avance ya que al menos se quien es el que nunca ha logueado por que dice "NULL", pero necesito que solo se imprima "luis"

Espero puedan ayudarme por favor :(

Gracias!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 11/01/2013, 12:39
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Mostrar solo los registros que no tengan coincidencias con otra tabla

Solucionado!

WHERE logueos.id IS NULL
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 11/01/2013, 12:40
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Mostrar solo los registros que no tengan coincidencias con otra tabla

Código MySQL:
Ver original
  1. SELECT usuarios.name,logueos.id
  2. FROM usuarios LEFT JOIN logueos ON usuarios.id = logueos.user
  3. WHERE logueos.user IS NULL
  4. GROUP BY usuarios.id
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: coincidencias, registros, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:20.