Соедините две таблицы через сводную таблицу и получите конкретные результаты в MySQL - PullRequest
0 голосов
/ 15 сентября 2018

У меня проблема с моей логикой, потому что я не эксперт по БД. У меня есть три таблицы, таблица пользователей выглядит следующим образом:

id|name |type_id|
 1|user1|   1   |
 2|user2|   2   |
 3|user3|   2   |
 4|user4|   2   |
 

где идентификатор типа пользователя '2' означает менеджер. Стол компаний:

id | name |
 1 | shoes|
 2 | pants|
 3 | tv   |
 4 | light|

И сводная таблица (companies_manager), которая назначает одного или нескольких менеджеров одной или нескольким компаниям:

id|manager_id |company_id|
 1|     2     |     1    |
 2|     3     |     2    |
 3|     4     |     3    |
 4|     3     |     3    |

Как вы видите, в одной компании может быть один или несколько менеджеров, и наоборот. Проблема возникает, когда я хочу получить менеджеров (другими словами, пользователей с идентификатором типа пользователя '2'), которые не принадлежат определенной компании (например, компании 1, получить пользователей 3 и 4), но я не ' Я действительно знаю, как сделать запрос, потому что, хотя они не принадлежат компании 1, они принадлежат другой компании. Спасибо за продвижение!

1 Ответ

0 голосов
/ 15 сентября 2018

используйте этот запрос

SELECT user.*, compnies.*, compnies_manager.* FROM user LEFT JOIN compnies_manager ON user.type_id=compnies_manager.manager_id LEFT JOIN compnies ON compnies_manager.compny_id=compnies.id WHERE user.type_id=2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...