powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
9 сообщений из 9, страница 1 из 1
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138016
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 3 таблицы: a, b и c.
Нужно соединить их таким образом, чтобы вывести все записи таблицы А, и также b и с, при наличии записи в c, соединяющейся с b.
Если в C нет соответствующей записи для B, то на месте полей B и С оставить пустые значения.
Код: sql
1.
2.
3.
4.
SELECT * 
FROM a
LEFT JOIN b ON b.a_id = a.id
INNER JOIN c ON c.id = b.id


А в результате A тоже обрезает. Т.е. выводятся только скажем 13 записей вместо 322.
Должно быть:
a.id b.id c.id
1 2 2
2 null null
3 4 4
4 null null
5 null null
6 22 22
7 null null
8 null null
...

А выводится:
a.id b.id c.id
1 2 2
3 4 4
4 11 11
...
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138019
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если же везде поставить LEFT JOIN, то будут выводиться записи таблицы b, для которых нет соответствия в c, а это не нужно.
a.id b.id c.id
1 2 2
2 3 null
3 4 4
4 5 null
5 11 null
6 22 22
7 23 null
8 28 null
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138032
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скобки спасут отца русской демократии:
Код: sql
1.
2.
3.
4.
5.
SELECT * 
FROM a
LEFT JOIN 
(b INNER JOIN c ON c.id = b.id) 
ON b.a_id = a.id
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138043
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так:
SELECT *
Код: sql
1.
2.
3.
FROM a
LEFT JOIN (b, c) 
ON b.a_id = a.id AND c.id = b.id;
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138047
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Упс...
Код: sql
1.
2.
3.
4.
SELECT * 
FROM a
LEFT JOIN (b, c) 
ON b.a_id = a.id AND c.id = b.id;
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138211
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina, спасибо!
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138421
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad,
использовать скобки (круглые)
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138517
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaСкобки спасут отца русской демократии:
Код: sql
1.
2.
3.
4.
5.
SELECT * 
FROM a
LEFT JOIN 
(b INNER JOIN c ON c.id = b.id) 
ON b.a_id = a.id

*
*
ne polychitsia ispol'zovat' ideksy*
*
Pri nekotorix ysloviiax dva LEFT JOIN*
budey bistree
...
Рейтинг: 0 / 0
Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
    #39138548
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc , это так. Но вопрос пока что теоретический, так что производительность имхо не рассматривается...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как написать запрос с LEFT JOIN, внутри которого INNER JOIN?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]