У меня проблема с моей логикой, потому что я не эксперт по БД. У меня три таблицы, таблица пользователей, которая выглядит так:
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, они принадлежат другой компании. Благодарим за продвижение!
используйте этот запрос
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