Есть 4 таблицы, мне нужно выбрать всех пользователей(users) со всеми воронками(funnels) которые у них есть. То есть у одного юзера есть несколько воронок.
users | leads | landings | funnels
----- | ----- | -------- | -------
id | id | id | id
name | user_id | funnel_id | name
| landing_id |
Пример что хочу получить:
User name | Funnel name
user 1 | Funnel 1
user 1 | Funnel 2
user 2 | Funnel 1
user 3 | Funnel 2
Писал такой запрос но результат оказался не тем: Получил нужно информацию, но она продублировалась много раз(ровнялось количеству записей в таблицу leads)
SELECT users.name,funnels.name
FROM users
LEFT JOIN leads ON users.id = leads.user_id
INNER JOIN landings ON leads.landing_id = landings.id
RIGHT JOIN funnels ON landings.funnel_id = funnels.id
Будьте проще.
SELECT [DISTINCT]
users.name,
funnels.name
FROM users,
leads,
landings,
funnels
WHERE users.id = leads.user_id
AND leads.landing_id = landings.id
AND landings.funnel_id = funnels.id
Везде нужно писать LEFT JOIN
. А чтобы убрать дубликаты, добавить DISTINCT
SELECT DISTINCT
users.name,
funnels.name
FROM
users
LEFT JOIN leads ON users.id = leads.user_id
LEFT JOIN landings ON leads.landing_id = landings.id
LEFT JOIN funnels ON landings.funnel_id = funnels.id
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как организовать проект с несколькими точками входа? Чтоб собирались 2 сборки с общими компонентами