繁体   English   中英

SQL匹配从左表到右表组的所有值

[英]SQL Match All Values from Left Table to Groups of Right Table

我有两个表-'LeftTable'和'RightTable'。 这些数据如下所示:

左表

T1 | C45  
T1 | C46  
T1 | C47  

右表

T9 | C45  
T9 | C47  
T10| C45  
T10| C46  
T10| C47  
T10| C52  

我正在尝试编写一个SQL查询,该查询告诉我右表中的哪些“ T”条目包含所有“ C”项,就像在LeftTable中一样

LeftTable仅具有一种“ T”条目。 因此,因为LeftTable具有C45,C46,C47-我希望RightTable中的“ T”值具有与C45 C46 C47相对应的“ C”。

因此,在这种情况下,它应该返回T10(具有所有三个)。 但是,它不应返回T9(因为它从LeftTable中只有两个公共的“ C”值)

这个问题比我最初想的要有趣。 :-)

假设在RightTable(rt)上有一个组合的唯一键,这将起作用:

select rt.id , count(*) right_count 
from rt join lt on rt.val=lt.val 
group by rt.id
having count(*) = (select count(distinct val) from lt)

与:

rt =右表
lt =左表
id = T场
val = C场

我希望这有帮助。 拉尔夫

需要这样的东西:

从RT选择T值

什么时候

(从LT存在中选择C值(为每个t值从RT中选择C值))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM