Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下两个表(一个和两个),需要第三个表中的输出。
ONE ID TAG 1 A 2 B 3 c TWO ID TAG 1 A 2 Z OUTPUT ID TAG 1 A 3 C
条件 - 1. 需要 'TAG' 匹配 的值 2. 需要 'TWO' 表中没有的来自 'ONE' 的 值 3. 不需要 'TAG' 不匹配的值
这可以在单个 SQL 查询中完成吗?
ALEFT JOIN保留第一个表中不匹配的结果:
LEFT JOIN
SELECT one.id AS id, one.tag AS tag FROM one LEFT JOIN two ON one.id = two.id WHERE one.tag = two.tag OR two.tag IS NULL;
第一个条件one.tag = two.tag得到匹配结果;第二个two.tag IS NULL获取 table 中可用的内容,one但没有two。
one.tag = two.tag
two.tag IS NULL
one
two
在此处查看演示。让我知道它是否有效。
select a.ID, a.TAG from ONE a LEFT OUTER JOIN TWO b ON (a.ID = b.ID and a.TAG = b.TAG)