Соединение трех таблиц MySQL - - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть три таблицы с именем

CV Table

-------------
id    name
-------------
1     Arthur
2     James
3     John
4     king

Техническая таблица

-------------
id    name
-------------
1     Java
2     C#
3     PHP
4     Python

Bridge

    -----------------
   CV_id    tech_id
    -----------------
       1     1
       1     2
       1     3
       1     4
       2     1
       3     2
       3     4
       4     2
       4     1

Я хочу, чтобы результаты при поиске 'cv', относящиеся к tech.id=1 и tech.id=2, были такими:

results

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

, а не результаты:

результаты

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

Это все равно что сказать:

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

и мне нужны технические специалисты: Java и PHP, которые есть у CV, я имею в виду CV00, а не CV01 и CV02

1 Ответ

0 голосов
/ 18 февраля 2019

Вы можете использовать объединение на основе подзапроса для значения В наборе, который вы ищете, и которое соответствует значению 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...