Je récupère trois ensembles de données différents (ou ce qui devrait être des lignes "uniques"). Au total, je m'attends à 3 ensembles de lignes uniques parce que je dois effectuer différentes opérations sur chaque ensemble de données. Cependant, je récupère plus de lignes qu'il n'y en a au total dans la table, ce qui signifie que je dois récupérer des lignes en double quelque part. Voici un exemple de mes trois séries de requêtes:Interrogation de trois ensembles de données non bissecteurs
SELECT DISTINCT t1.*
FROM table1 t1
INNER JOIN table2 t2
ON t2.ID = t1.ID
AND t2.NAME = t1.NAME
AND t2.ADDRESS <> t1.ADDRESS
SELECT DISTINCT t1.*
FROM table1 t1
INNER JOIN table2 t2
ON t2.ID = t1.ID
AND t2.NAME <> t1.NAME
AND t2.ADDRESS <> t1.ADDRESS
SELECT DISTINCT t1.*
FROM table1 t1
INNER JOIN table2 t2
ON t2.ID <> t1.ID
AND t2.NAME = t1.NAME
AND t2.ADDRESS <> t1.ADDRESS
Comme vous pouvez le voir, je suis sélection (dans l'ordre des requêtes)
- ensemble de données où le match d'identification et le nom
- ensemble de données où les matches id mais le nom ne pas
- ensemble de données où l'identification ne correspond pas, mais le nom ne
I a m récupérant PLUS de lignes qu'il n'en existe dans T1 en additionnant le nombre de résultats renvoyés par les trois requêtes, ce qui ne me semble pas logique, et je dois donc dupliquer les lignes (si c'est logiquement possible) quelque part qui m'empêche de exécuter des commandes différentes pour chaque ensemble (puisqu'une rangée aurait une autre commande exécutée dessus). Est-ce que quelqu'un peut trouver où je me trompe ici?
Il pourrait être utile de vous expliquer ce que vous faites et pourquoi je regarde cela et je me dis «que feriez-vous? – cletus