我有三个名为
的表简历表
-------------
id name
-------------
1 Arthur
2 James
3 John
4 king
技术表格
-------------
id name
-------------
1 Java
2 C#
3 PHP
4 Python
桥梁
-----------------
CV_id tech_id
-----------------
1 1
1 2
1 3
1 4
2 1
3 2
3 4
4 2
4 1
寻找与tech.id=1
和tech.id=2
相关的'cv'时,我想要结果
像这样
结果
-----------------
Arthur
king
而不是结果:
结果
-----------------
Arthur
James
king
John
这就像说:
- CV00 --> Java, PHP
- CV01 --> Java, C#
- CV02 --> PHP, Django
我想要技术:CV拥有的Java和PHP,我的意思是CV00而不是CV01和CV02
答案 0 :(得分:0)
您可以使用基于子查询的联接来查找要查找的集合中的值,并匹配2个值
select name
from cv_table c
inner join (
select distinct b.CV_id
from bridge b
where b.tech_id in (1,2)
group by CV_id
having count(distinct tech_id) = 2
) t on t.CV_id = c.id