7
votes

Trouvez des valeurs qui échouent SQL Join

dire que j'ai une requête telle que: xxx

J'ai donc 100 enregistrements et 98 d'entre eux sont égaux de sorte que la requête imprime 98 sur 100. Comment puis-je obtenir SQL Imprimez le 2 qui n'a pas répondu à la jointure?


4 commentaires

N'est-ce pas l'opérateur "<>" dans la relève?


Si vous faites <>, alors cela vous donnera chaque fois que cela échoue. Cela prendrait col_1.table_1 et vérifiez que sur chaque col_1.table_2 vous donnant 98 qui ne sont pas égaux * chaque rangée que vous avez donc 9,800 non égal au lieu de 2


@Yves M. - Non, car les enregistrements ne sont pas dans l'ensemble résultant. Une requête différente est nécessaire.


Dupliqué possible de Stackoverflow.com/questions/7650627/mysql-not-union


4 Réponses :


10
votes

Utilisez un Joindre de gauche CODE>:

SELECT *
FROM Table_1
LEFT JOIN Table_2 ON (Table_1.Col_1 = Table_2.Col_1)


0 commentaires

0
votes

Essayez ceci:

SELECT * FROM `Table_1` LEFT JOIN `Table_2` ON (`Table_1`.`Col_1` = `Table_2`.`Col_1`)


0 commentaires

0
votes
SELECT *
FROM Table1 AS A
LEFT OUTER JOIN Table2 AS B
ON (A.Col = B.Col)
WHERE B.Col IS NULL

0 commentaires

7
votes

Une alternative à la jointure gauche consiste à utiliser Exist. XXX


0 commentaires