我有三张table。
t1
Name | Version | ...
A 1
A 2
B 1
B 3
t2
Name | Version | ...
A 1
A 3
B 2
B 3
t3
Name | Version | ...
A 1
A 2
我想从表1和表2中选择表3中不存在的不同名称和版本值。
我当前的select查询从表1和表2中选择不同的值
SELECT c.name,c.version FROM
(SELECT name,version from t1
UNION
SELECT name,version from t2
) c
这是回报
result
Name | Version
A 1
A 2
A 3
B 1
B 2
B 3
我想要的是什么
wanted result
Name | Version
A 3
B 1
B 2
B 3
如何正确修改hql查询以获得此结果?谢谢你的帮助。
2条答案
按热度按时间omjgkv6w1#
您可以在连接条件中使用<>
g9icjywg2#
对t3表使用左联接+仅筛选未联接的行:
另一种可能的方法是使用not exists: