Im avoir 2 Tables Tableau 1jointure requête pour MySQL
ID AnimalNAme
1 Dog1
1 Dog2
2 cat1
3 Cow1
3 Cow2
4 Rat1
4 Rat2
Tableau 2
ID AnimalNAme
1 Dog1
2 cat1
3 Cow1
4 Rat2
Je dois sortie
1 Dog2
3 Cow2
4 Rat1
Im avoir 2 Tables Tableau 1jointure requête pour MySQL
ID AnimalNAme
1 Dog1
1 Dog2
2 cat1
3 Cow1
3 Cow2
4 Rat1
4 Rat2
Tableau 2
ID AnimalNAme
1 Dog1
2 cat1
3 Cow1
4 Rat2
Je dois sortie
1 Dog2
3 Cow2
4 Rat1
Je pense que vous cherchez NOT EXISTS
:
SELECT ID, AnimalName
FROM Table1
WHERE NOT EXISTS
( SELECT 1
FROM Table2
WHERE Table1.ID = Table2.ID
AND Table1.AnimalName = Table2.AnimalName
);
Ceci renverra toutes les lignes de table1 qui n'existent pas dans le tableau 2.
Il est cependant intéressant de noter que dans MySQL LEFT JOIN/IS NULL
generally performs better que NOT EXISTS
, et a le même effet. En déclarant que OUTERTABLE.Column IS NULL
vous limitez la requête aux lignes où il n'y a aucun élément correspondant dans la table externe.
SELECT Table1.ID, Table1.AnimalName
FROM Table1
LEFT JOIN Table2
ON Table1.ID = Table2.ID
AND Table1.AnimalName = Table2.AnimalName
WHERE Table2.ID IS NULL;
Il peut être pas la meilleure option, mais vous pouvez essayer la requête suivante:
SELECT *
FROM table1
LEFT JOIN table2 ON table2.AnimalName = table1.AnimalName
WHERE table2.AnimalName IS NULL
jointure gauche et vérifier pour les matchs non?
SELECT
FROM Table1 a
LEFT OUTER JOIN Table2 b
ON a.ID = b.ID
AND a.AnimalName = b.AnimalName
WHERE B.ID IS NULL
Étant donné que votre question ne dit pas exactement, je ne peux que deviner les données fournies. Comment puis-je obtenir une liste de tous les animaux qui sont dans la première table et pas dans la seconde.
Effectuez une jointure à gauche vers la table que vous comparez et effectuez une vérification de la valeur NULL dans la deuxième table.
select
t1.id,
t1.animalName
from
Table1 t1
left join table2 t2
on t1.id = t2.id
AND t1.animalName = t2.animalName
where
t2.id IS NULL
que je fais à gauche se joindre à deux colonnes car qui connaît la qualité des données et ayant de multiples noms d'animaux par le même nom, mais sous différents ID ... comme ID associé avec le propriétaire d'un animal de compagnie .
Quelle est la condition pour la sortie désirée? Il n'y a pas de condition claire pour filtrer la liste dans la sortie. – Bere
son erreur fine de travail que je faisais était iwas utilisant jointure gauche et j'avais donné Table1.AnimalName! = Table2.AnimalName et n'a pas indiqué "WHERE Table2.ID IS NULL" – vishu