powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Четырёхтабличный запрос и более. (Проблемка).
22 сообщений из 22, страница 1 из 1
Четырёхтабличный запрос и более. (Проблемка).
    #38562141
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть 4 таблицы, связаны они ключом ID.
Вот запрос к таблицам:

Код: plsql
1.
2.
3.
4.
5.
6.
SELECT t1 . * , t2 . * , t3 . * , t4 . * 
FROM t1, t2, t3, t4
WHERE t1.ID = t2.ID
AND t1.ID = t3.ID
AND t1.ID = t4.ID
AND t1.Name =  'Test'



И если одна из таблиц окажется пуста, то общий результат будет NULL (0).
Что по советуете?
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562143
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну пуста, ну и что?
Кстати, результат будет не "NULL (0)", а пустой набор.

Чтобы что-то посоветовать, нужно понимать логику этого запроса с точки зрения предметной области.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562146
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дак мне то надо что:
Чтобы он из 4 таблиц выводил данные, даже если в одной из четырех таблиц пусто. А он вообще ничего не выводит, если в одной пусто, нет нужного ID.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562147
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
left join ?
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562148
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не буду утверждать, не смотрел план. но имхо такие запросы
Код: sql
1.
2.
3.
SELECT t1 . * , t2 . * , t3 . * , t4 . * 
FROM t1, t2, t3, t4
...

это пожирание ресурсов сервера. зачем вам произведение?
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562153
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEADне буду утверждать, не смотрел план. но имхо такие запросы
Код: sql
1.
2.
3.
SELECT t1 . * , t2 . * , t3 . * , t4 . * 
FROM t1, t2, t3, t4
...

это пожирание ресурсов сервера. зачем вам произведение?

Какое произведение? Это выборка всего из таблицы.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562154
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEADleft join ?
Приведите пример.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562159
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrukhayyКакое произведение?декартово вестимо )

UrukhayyILLHEADleft join ?Приведите пример.манула или гугла нет?
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562160
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ILLHEADUrukhayyКакое произведение?декартово вестимо )Нет там декартова произведения, не выдумывайте. Обратите внимание на секцию WHERE.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562161
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrukhayyILLHEADleft join ?
Приведите пример.Например так:
Код: sql
1.
2.
3.
SELECT t1 . * , t2 . *
FROM t1 LEFT JOIN t2 ON t1.ID = t2.ID
WHERE t1.Name =  'Test'

Но LEFT JOIN чувствителен к порядку указания таблиц, а его можно определить только исходя из логики таблиц, о коей мы ничего не знаем.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562162
HoBTID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrukhayyПриведите пример.
Неуч, да еще и ленивый, иди читай буквари.
Букварь по JOIN
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562174
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftUrukhayyпропущено...

Приведите пример.Например так:
Код: sql
1.
2.
3.
SELECT t1 . * , t2 . *
FROM t1 LEFT JOIN t2 ON t1.ID = t2.ID
WHERE t1.Name =  'Test'

Но LEFT JOIN чувствителен к порядку указания таблиц, а его можно определить только исходя из логики таблиц, о коей мы ничего не знаем.

Уже теплее. Сделала подобным образом запрос 4х таблиц, в которых внешний ключ ID. Из первой выводит всё нормально, в остальных таблицах все поля выводятся как NULL.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562175
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrukhayyИз первой выводит всё нормально, в остальных таблицах все поля выводятся как NULL.Если это не то, что нужно получить, то показывайте запрос.
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562179
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
SELECT table1 . * , table2 . * , table3 . * ,table4 . *
FROM table1 LEFT JOIN (table2,table3,table4) ON (table1.ID = table2.ID AND table1.ID = table3.ID AND table1.ID = table4.ID) WHERE table1.Name =  'Test'
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562183
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urukhayy,

вы определенно неравнодушны к произведениям )
внутри (table2,table3,table4) реализуется CROSS JOIN перечисленных таблиц
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562184
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEADUrukhayy,

вы определенно неравнодушны к произведениям )
внутри (table2,table3,table4) реализуется CROSS JOIN перечисленных таблиц
Ну тогда предоставьте корректный запрос!
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562189
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуйте так
Код: sql
1.
2.
3.
4.
5.
SELECT table1 . * , table2 . * , table3 . * ,table4 . *
FROM table1 LEFT JOIN table2 ON table1.ID = table2.ID
            LEFT JOIN table3 ON table1.ID = table3.ID
            LEFT JOIN table4 ON table1.ID = table4.ID
WHERE table1.Name =  'Test'
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562191
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> предоставьте
вы случаем не начальником работаете? )
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562193
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ILLHEADпробуйте так
Код: sql
1.
2.
3.
4.
5.
SELECT table1 . * , table2 . * , table3 . * ,table4 . *
FROM table1 LEFT JOIN table2 ON table1.ID = table2.ID
            LEFT JOIN table3 ON table1.ID = table3.ID
            LEFT JOIN table4 ON table1.ID = table4.ID
WHERE table1.Name =  'Test'



Опа! То что надо)
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562194
Urukhayy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можете объяснить, в чем был косяк?
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562196
ILLHEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrukhayyА можете объяснить, в чем был косяк?вам не смогу
...
Рейтинг: 0 / 0
Четырёхтабличный запрос и более. (Проблемка).
    #38562774
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Urukhayy,

в том что у вас был неявный ИННЕР ДЖОИН, а нужен был ЛЕФТ
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Четырёхтабличный запрос и более. (Проблемка).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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