2010-10-12 8 views
4

J'ai 2 tables pour lesquelles je dois exécuter une requête surextérieur mySQL rejoindre

Tableau 1 a 2 champs: l_id, et le nom

Tableau2 dispose également de 2 champs: l_id et b_id

J'ai besoin d'exécuter une requête pour obtenir le "nom" et "l_id" pour toutes les entrées de la table 1 qui n'ont pas d'entrée dans table2 pour un b_id donné.

Hope this fait un certain sens

Répondre

10
select t1.* 
from Table1 t1 
left outer join Table2 t2 on t1.l_id = t2.l_id 
    and t2.b_id = @SomeValue 
where t2.l_id is null 
+0

Thnaks, cela fonctionne comme prévu –

3

Vous pouvez utiliser une jointure externe, mais je trouve un sous-requête est un peu plus simple. Dans votre cas, sélectionnez tout de table1 qui n'a pas un ID dans table2. Reads mieux ...

SELECT * FROM table1 WHERE l_id NOT IN (SELECT l_id FROM table2); 
+0

cela fonctionne pour moi, je viens de cette deuxième requête modifié pour ajouter la condition de b_id, mais pour être honnête, RedFilter répondu premiers –

+0

Pas de soucis. J'ai raté la partie b_id de toute façon. –