2010-08-31 18 views
0

Est-il possible de supprimer les lignes correspondantes de la requête de jointure MySQL. En fait, j'ai deux tables où j'ai stocké le pub_id, et post_id dans les deux tables, elles sont communes. Je souhaite un résultat lorsque j'interroge toutes les lignes correspondantes de table1 et que table2 ne doit pas être répertorié et que les lignes non correspondantes doivent être répertoriées uniquement.Comment faire pour supprimer les lignes correspondantes De mysql Join Résultat et montrer les lignes non-assorties?

Répondre

1

lignes de retour de la requête qui existe seulement dans l'une des deux tables:

SELECT * 
FROM Table1 t1 
WHERE NOT EXISTS (Select 1 from Table2 t2 
       Where t1.pub_id = t2.pub_id 
       AND t1.post_Id = t2.post_id) 
UNION ALL 
SELECT * 
FROM Table2 t1 
WHERE NOT EXISTS (Select 1 from Table1 t2 
       Where t1.pub_id = t2.pub_id 
       AND t1.post_Id = t2.post_id) 
0

vous besoin de quelque chose comme ça:

SELECT * FROM tablea AS a 
    RIGHT JOIN tableb AS o ON a.id = o.id WHERE a.pub_id IS NULL and a.post_id is null 
UNION  
SELECT * FROM tablea AS a 
    LEFT JOIN tableb AS o ON a.id = o.id WHERE o.pub_id IS NULL and o.post_id is null 
+0

Je lance cette requête, mais il n'a pas retourné résultat exact ID SELECT comme postlist FROM wp_posts as posta O WH N'EXISTE PAS ( \t SELECT * \t FROM wp_publication_posts as pub \t O WH pub.publication_id = posta.ID et pub.post_id = posta.ID ) – janjua

+0

Je mets à jour la requête, qu'est-ce qui ne va pas? –