连接三张表的MySQL-

时间:2019-02-18 11:16:22

标签: mysql join

我有三个名为

的表

简历表

-------------
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=1tech.id=2相关的'cv'时,我想要结果 像这样

结果

-----------------
Arthur
king

而不是结果:

结果

-----------------
Arthur
James
king
John

这就像说:

- CV00 --> Java, PHP
- CV01 --> Java, C#
- CV02 --> PHP, Django

我想要技术:CV拥有的Java和PHP,我的意思是CV00而不是CV01和CV02

1 个答案:

答案 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