select s.*, (case when r.student_id is null then 'No' else 'Yes' end)
from students s left join
records r
on r.student_id = s.id;
如果可能存在重复项,则在加入之前移除重复项:
select s.*, (case when r.student_id is null then 'No' else 'Yes' end)
from students s left join
(select distinct r.student_id
from records r
) r
on r.student_id = s.id;
SELECT
A.StudentID,
B.StudentID,
CASE WHEN b.StudentID IS NOT NULL THEN 'Yes' ELSE 'NO' END As Match
FROM
StudentA a
LEFT JOIN StudentB b on a.StudentID = b.StudentID
4条答案
按热度按时间vltsax251#
如果没有副本,则可以使用
left join
:如果可能存在重复项,则在加入之前移除重复项:
sdnqo3pr2#
考虑一个左连接,它将显示第一个表中的所有记录,以及第二个表中的所有匹配记录。您可以使用case语句来显示它们是否匹配。
wmomyfyw3#
以下是安全的重复和可能更快,如果有许多重复。
请看这里的sql fiddle。
rggaifut4#
你可以使用一个左连接和一个case当