J'ai deux tables simples: (seulement la colonne "Id")
Table1: P>
id 2 4
3 Réponses :
Il existe plusieurs façons de cuire ce chat: ou vous pouvez utiliser une jointure extérieure gauche: p>
Je vous suggérerais que vous utilisiez des préfixes de nom de table dans la première requête pour clarifier le champ ID que vous entendez, si ce n'est que pour la raison pour laquelle il serait très déroutant de lire si vous l'étendez plus tard.
select t1.* from table1 t1 left outer join table2 t2 on t1.id = t2.id where t2.id is null
@Raihan parce que l'extérieur gauche peut rejoindre "Aucune lignée" de T2 pour un T1 donné (et c'est le LynchPin pour cette approche). Les lignes manquantes sont de telles lignes qui sont ... manquantes :-)
Essayez ceci:
SELECT table1.id FROM table1 WHERE table1.id NOT IN(SELECT table2.id FROM table2)
Jusqu'à présent, toutes les réponses ne montrent que ce qui est dans le tableau 1 manquant dans le tableau2. Avez-vous besoin d'une requête qui reviendrait à tous ceux du tableau2 qui manquent également dans la colonne1?
Salut Paul, non - une façon seulement est ce dont j'ai besoin.
Le mot clé est
sauf code>. MySQL ne prend pas en charge cette opération, mais l'utiliser dans des recherches reviendra de nombreux résultats pour des quinzins de travail et des approches supplémentaires. (Cette question se présente de temps en temps.)