Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с запросом, неправильное построение / 9 сообщений из 9, страница 1 из 1
05.04.2020, 12:03
    #39944080
BearSib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
Помогите правильно запрос составить
Таблица db_table_main

id | name | some_val

Таблица db_table_second

id | parent_id | data_type | data_val

SELECT * FROM db_table_main AS t1 RIGHT JOIN db_table_second AS t2 ON t1.id=t2.parent_id WHERE t1.id=115

нужно выбрать все из первой и дополнить вариантами из второй. Вариантов может быть сотня, а может и не быть совсем.
При использовании LEFT JOIN выбирается только одна строка, что логично
при использовании RIGHT JOIN выбирается все, но проблема в том, что правое на то и правое, что дополняет правую таблиу левой, и если ниодного параметра дополнительного во второй таблице нет, то возвращается нуль (((
А строка из первой таблицы нужна независимо от того, есть данные во второй таблице или нет...
Хелп?
...
Рейтинг: 0 / 0
05.04.2020, 13:26
    #39944092
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
BearSib
строка из первой таблицы нужна независимо от того, есть данные во второй таблице или нет
Значит, LEFT JOIN.
BearSib
При использовании LEFT JOIN выбирается только одна строка, что логично
Сфига бы оно логично-то?
...
Рейтинг: 0 / 0
05.04.2020, 13:51
    #39944095
BearSib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
с тигали что лефт дополняет левую таблиу правой,
левая таблица одна строка
правая десять
он лефтом тупо находит первое вхождение из правой дополняет эту одну строку из левой и все, работа выполнена для него. Он не смотрит дальше. Составьте запрос и посмотрите как отрабатывает...

пока решил вопрос через Join без условия, с дальшейшей обработкой в коде. Но это выглядит как костыль, а хочется изящный запрос (((
...
Рейтинг: 0 / 0
05.04.2020, 13:57
    #39944097
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
BearSib
он лефтом тупо находит первое вхождение из правой дополняет эту одну строку из левой и все, работа выполнена для него. Он не смотрит дальше.
Бред сивой кобылы. Сколько соответствий есть, столько итоговых записей и получится. Это кто-то не умеет вывести записи больше чем одну, не иначе - на SO такие "умельцы" выступают чуть не ежедневно, насмотрелся уже...
...
Рейтинг: 0 / 0
05.04.2020, 15:54
    #39944117
BearSib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
А конструктивные ответы не ждать да?
построй запрос конкретный и покажи, что это бред сивой кобылы...

id | name | val
1 | f-1 | v-1
2 | f-2 | v-2
3 | f-3 | v-3

id | parent_id | type | val
1 | 1 | 1 | val-1
2 | 1 | 2 | val-2
3 | 3 | 1 | val-15
4 | 3 | 3 | val-89
...
Рейтинг: 0 / 0
05.04.2020, 15:55
    #39944118
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
BearSib
построй запрос конкретный и покажи, что это бред сивой кобылы...
Да легко.
Выкладывай CREATE TABLE и INSERT INTO скрипты - будет тебе fiddle.
...
Рейтинг: 0 / 0
06.04.2020, 01:05
    #39944173
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
Мда... походу скриптов мы не дождёмся. Ну да мы не гордые, сами сделаем.

fiddle .
...
Рейтинг: 0 / 0
06.04.2020, 10:57
    #39944207
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
BearSibПри использовании LEFT JOIN выбирается только одна строка, что логично
логично, когда записали условие в WHERE, и обрубили весь смысл LEFT JOIN
пробуйте фокус такой, хотя это очень странно выглядит...
Код: sql
1.
t1 LEFT JOIN t2 ON t1.id=t2.parent_id  AND t1.id=115
...
Рейтинг: 0 / 0
06.04.2020, 14:37
    #39944267
BearSib
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с запросом, неправильное построение
Спасибо! я вчера к ночи допер, что все в условия обернул и он по условию ON и WERE мне выдавал, потому и были нули.
Вынес условия за скобки и все заработало.
Еще раз спасибо!
И за наглядный код тоже
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Проблема с запросом, неправильное построение / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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