Соедините две таблицы через сводную таблицу и получите конкретные результаты в MySQL

0

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

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|

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

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

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

Теги:
database
phpmyadmin

1 ответ

0

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню