dire que j'ai une requête telle que: 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? p> p>
4 Réponses :
Utilisez un Joindre de gauche CODE>:
SELECT *
FROM Table_1
LEFT JOIN Table_2 ON (Table_1.Col_1 = Table_2.Col_1)
Essayez ceci:
SELECT * FROM `Table_1` LEFT JOIN `Table_2` ON (`Table_1`.`Col_1` = `Table_2`.`Col_1`)
SELECT * FROM Table1 AS A LEFT OUTER JOIN Table2 AS B ON (A.Col = B.Col) WHERE B.Col IS NULL
Une alternative à la jointure gauche consiste à utiliser Exist.
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