внешнее соединение mySQL - PullRequest
4 голосов
/ 13 октября 2010

У меня есть 2 таблицы, для которых мне нужно выполнить запрос на

В таблице 1 есть 2 поля: l_id и имя

Таблица2 также имеет 2 поля: l_id и b_id

Мне нужно выполнить запрос, чтобы получить "name" и "l_id" для всех записей в table1, у которых нет записи в table2 для данного b_id.

Надеюсь, это имеет какой-то смысл

Ответы [ 2 ]

10 голосов
/ 13 октября 2010
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
3 голосов
/ 13 октября 2010

Вы можете использовать внешнее объединение, но я нахожу подзапрос более простым.В вашем случае выберите все из таблицы table1, у которого нет идентификатора в table2.Читается лучше ...

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