[mysql] requête sur plusieurs tables [Résolu]

Signaler
Messages postés
728
Date d'inscription
jeudi 20 juin 2002
Statut
Membre
Dernière intervention
7 novembre 2007
-
Messages postés
728
Date d'inscription
jeudi 20 juin 2002
Statut
Membre
Dernière intervention
7 novembre 2007
-
bonjour à tous,


je me posais une question en mysql :


lorsque je fais une requête sur 2 tables, comment faire pour avoir les enregistrements n'ayant pas de liens ?


je m'explique :


admettons que j'ai une table users contenant des utilisateurs et une table photos listant les photos de ces utilisateurs,

pour sélectionner les photos par utilisateurs, je joins ces 2 tables
avec (dans le where) : photos.id_user = users.id (par exemple)


jusque là, ça va, j'arrive à lister les photos par user.


mais comment faire pour lister les users qui n'ont pas de photos ? (sans utiliser de code php, juste une unique requête mysql)


si qqun connait, merci de me faire signe


à++

Sylvain [eax] http://www.eax.fr/

3 réponses

Messages postés
855
Date d'inscription
mardi 19 novembre 2002
Statut
Membre
Dernière intervention
28 juillet 2009
1
pour reprendre ton exemple:
SELECT * FROM photos WHERE id_user NOT IN (SELECT id FROM users)

-------------------------------------

Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
Messages postés
25
Date d'inscription
lundi 12 juin 2006
Statut
Membre
Dernière intervention
11 août 2006

L'opérateur EXCEPT ou MINUS retourne seulement les enregistrements différents de la première table à ceux de la seconde table.

SELECT tab1.nom_champ
FROM nom_table AS tab1
EXCEPT
SELECT tab2.nom_champ
FROM nom_table AS tab2
Messages postés
728
Date d'inscription
jeudi 20 juin 2002
Statut
Membre
Dernière intervention
7 novembre 2007
2
merci beaucoup, c'est exactement ce qu'il me fallait

Sylvain [eax] http://www.eax.fr/