2009-05-22 7 views
0

J'ai 2 tables ...comparer les résultats avec une autre table en PHP/MySQL

 
Table1: 
ID, Name, Country 
Table2: 
ID, accountID, parent 

table1.id = table2.acountID 

Mon script fait une recherche pour tous les enregistrements avec un parent particulier. Je veux comparer ces résultats avec table1 et retourner toutes les entrées qui ne sont pas dans la recherche.

par ex. Tableau 1:

 
1, Bill, AU 
2, Charles, US 
3, Clare, CA 

Tableau 2:

 
1, 1, Mary 
2, 1, William 
3, 2, Henry 

Recherche (select * from table2 WHERE accountID = '1') renvoie:

 
1, 1, Mary 
2, 1, William 

et je veux obtenir ce résultat (à partir table1):

2, Charles, US 
3, Clare, CA

Répondre

1
SELECT * FROM table1 WHERE ID NOT IN 
    (SELECT * FROM table2 WHERE accountID = '1') 
+0

parfait! (ou au moins il semble parfait). Je suppose que c'est parce qu'il lit comme je le veux :) – Hintswen

0

Votre recherche retourne toutes les lignes Tableau2 où accountID = 1

Pour retourner toutes les lignes qui ne sont pas retournés dans la recherche, vous trouverez toutes les lignes dans le tableau 1 qui ont une carte d'identité autre que 1, ou ne pas avoir toutes les lignes correspondantes dans Table2.

SELECT 
    ID 
FROM 
    Table1 
WHERE 
    ID <> 1 
    OR NOT EXIST (SELECT * FROM Table2 WHERE accountID = 1) 

Semble simple?

Questions connexes