Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь в написании запроса / 8 сообщений из 8, страница 1 из 1
07.01.2018, 20:04
    #39580361
SergeyKalmykov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
Люди знающие, помогите незнающему в решении задачи.

Для поиска %комиссии по договору просматриваются таблицы T1, T2, T3, если ID договора присутствует в нескольких таблицах, то комиссия берется из таблицы с меньшим номером (данные в T1 приоритетнее T2, Т2 приоритетнее Т3). Таблица T4 содержит номера всех договоров и их соответствие с ID. Написать запрос, возвращающий номера договоров и величину комиссий по ним.

Скрин задачи с таблицами прикреплен.
...
Рейтинг: 0 / 0
07.01.2018, 21:35
    #39580379
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
Код: sql
1.
2.
3.
4.
5.
6.
SELECT t4.dog_nom, COALESCE(t1.commis, t2.commis, t3.commis) commis
FROM t4
NATURAL LEFT JOIN t1
NATURAL LEFT JOIN t2
NATURAL LEFT JOIN t3
WHERE t4.dog_nom IN (123, 456, 789)
...
Рейтинг: 0 / 0
08.01.2018, 10:33
    #39580485
SergeyKalmykov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
Akina, спасибо за ответ, но запрос не выводит желаемый результат. На выходе имеем "Empty set" :(
...
Рейтинг: 0 / 0
08.01.2018, 10:52
    #39580488
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
Перепишите NATURAL JOIN на обычный условный.
...
Рейтинг: 0 / 0
08.01.2018, 18:34
    #39580626
SergeyKalmykov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
Akina, нет тот же самый результат. Пустой набор. Использовал LEFT JOIN T1 USING (Dog_id) и т.д. либо я не так понял. Вообще можно ли присвоить значениям NULL данные из другой таблицы (как на картинке)
...
Рейтинг: 0 / 0
08.01.2018, 19:46
    #39580655
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
Не USING, a LEFT JOIN ... ON.
...
Рейтинг: 0 / 0
12.01.2018, 19:48
    #39583515
SergeyKalmykov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
USING и ON ведь одно и тоже по сути. Пустой набор выдает
...
Рейтинг: 0 / 0
12.01.2018, 20:29
    #39583532
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помощь в написании запроса
SergeyKalmykovUSING и ON ведь одно и тоже по сути.Нет. Если таблиц более 2 (как раз твой случай), неизвестно, поле какой из таблиц будет использовано при связывании третьей со связкой первая+вторая. Тогда как в ON таблица указывается явно.
А в твоём случае всё ещё хуже - NATURAL может связать таблицы по ДВУМ полям. Имена и типы же совпадают...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь в написании запроса / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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