équivalant de la commande MINUS en MySQL
Bonjour,
je cherche à faire la chose suivante :
j'ai 2 tables A et B liées par le champ Num.
La table B a un champ toto.
Je souhaite sélectionner les enregistrements de la table A tel que les enregistrements liés de la table B aient le champ toto différent de 1.
Or il est possible que des enregistrements de la table A n'aient pas de correspondant dans la table B. La jointure faite sur le champ num m'empêche de récupérer ces enregistrements (alors que leur champ table B.toto est différent de 1 puisque l'enregistrement n'existe pas).
La requête suivante ne me convient donc pas :
Code:
1 2 3 4
|
SELECT tableA.num
FROM tableA, tableB
WHERE tableA.num = tableB.num AND tableB.toto <> 1 |
Je pensais donc utiliser MINUS :
Code:
1 2 3 4 5 6 7
|
SELECT tableA.num
FROM tableA
MINUS
SELECT tableA.num
FROM tableA, tableB
WHERE tableA.num = tableB.num AND tableB.toto = 1 |
Or, il semble qu'en MySQL, l'opérateur MINUS n'existe pas.
Auriez-vous une idée ?
Merci d'avance pour votre aide.
Re: équivaelent de la commande MINUS en MySQL
essaye ca
Code:
1 2 3 4
| SELECT tableA.num
FROM tableA
LEFT JOIN tableB ON tableA.num = tableB.num
WHERE tableB.toto <> 1 |
plus d'info sur les jointures externes :
http://sql.developpez.com/sqlaz/jointures/#L2.3
si ce que je t'ai donné ne fonctionne pas, montre nous le résultat obtenu et ce que tu aimerai avoir