Ответ 1
Select * from table1
left join table2 on table1.id = table2.id
where table2.id is null
может кто-нибудь помочь мне написать sql для scernerio следующим образом:
Table 1
2 columns: ID, Name
Table 2
2 columns: ID, Name
Я хочу, чтобы запрос показывал имена из Таблицы 1, которые не указаны в таблице 2. Таким образом, отфильтруйте все имена в таблице 1, которые приведены в таблице 2, являются результатом запроса. Используйте идентификатор для фильтрации, а не имя.
Это поможет мне в том, что я пытаюсь сделать. Спасибо заранее
Select * from table1
left join table2 on table1.id = table2.id
where table2.id is null
Это должно работать лучше, чем версия left join...is null
. См. здесь и здесь для сравнения.
select t1.id, t1.name
from table1 t1
where not exists(select null from table2 t2 where t2.id = t1.id)
Использовать этот запрос
select
t1.*
from table1 t1
left outer join table2 t2
on t1.id=t2.id
where t2.id is null
это работает, соединяя все в t1 с тем, что существует в t2. предложение where отфильтровывает все записи, которые не существуют в t2.
SELECT Table1.ID, Table1.Name, Table2.ID
FROM Table1 LEFT OUTER JOIN Table2 ON Table1.ID = Table2.ID
WHERE Table2.ID IS NULL
Я думаю, что он должен это сделать.