Filtrar una consulta de selección para devolver solo los registros que no tienen un registro correspondiente en una tabla unida

TABLE GROUP
group_id | user_id
   1          1

TABLE USERS
user_id | fullname
   1      Juan dela Cruz 
   2      Maria 

Estoy mostrando el resultado en mi tabla users usando un bucle foreach pero lo que quiero es cuando el user_id en mi mesa group existe No quiero que se muestre más. ¿Cómo puedo lograrlo? Sé que necesito cruzar la tabla, pero no sé por dónde empezar, también estoy pensando en usar un INNER JOIN pero simplemente se fusionará de la misma manera user_id en 1.

preguntado el 16 de mayo de 11 a las 17:05

3 Respuestas

SELECT * FROM users WHERE user_id NOT IN(SELECT user_id FROM group)

contestado el 16 de mayo de 11 a las 21:05

No creo que llamar a la tabla 'grupo' sea una buena idea, ya que es un comando SQL (GROUP BY). user_groups sería mejor, quizás. - ARKANSAS.

Gracias, esto funciona perfecto. También sobre su preocupación, en realidad tengo un prefijo en todas mis tablas. -Decano- Codificador preguntándose

select distinct u.user_id, u.fullname
from USERS u
left outer join GROUP g on u.user_id = g.user_id
where g.user_id is null

contestado el 16 de mayo de 11 a las 21:05

Si te entiendo bien:

SELECT * FROM users WHERE user_id <> <ID>

contestado el 16 de mayo de 11 a las 21:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.