Выберите данные из двух таблиц с соединительной таблицей - PullRequest
0 голосов
/ 10 февраля 2019

Я немного запутался с внутренним / левым соединением.

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

users
-> id (PRIMARY with auto increment)
-> first_name
-> last_name
-> email
-> status

companies
-> id (PRIMARY with auto increment)
-> company_name
-> email
-> status

link
-> id (PRIMARY with auto increment)
-> user_id
-> company_id
-> status (if the connection is active)

Я пытаюсь использовать link connection table, а затем захватить вседанные из users и companies, которые связаны друг с другом.Прямо сейчас я делаю это в 3 шага, получаю user_id, затем проверяю таблицу ссылок, захватывает company_id и затем получает информацию о компаниях.

1 Ответ

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

Один SQL подойдет.
Просто присоедините их к общим ключам.

SELECT 
 usr.first_name, 
 usr.last_name, 
 usr.email as user_email, 
 usr.status as user_status,
 comp.company_name, 
 comp.email as company_email, 
 comp.status as company_status,
 usrcomp.status as link_status
FROM users AS usr
JOIN link AS usrcomp ON usrcomp.user_id = usr.id
JOIN companies AS comp ON comp.id = usrcomp.company_id
WHERE usrcomp.status = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...