0

我有以下两个表(一个和两个),需要第三个表中的输出。

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 查询中完成吗?

4

2 回答 2

1

ALEFT 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

在此处查看演示。让我知道它是否有效。

于 2013-07-09T04:04:21.097 回答
0
select a.ID, a.TAG
from ONE a LEFT OUTER JOIN TWO b
ON (a.ID = b.ID
and a.TAG = b.TAG)
于 2013-07-09T04:11:27.207 回答