|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
Помогите правильно запрос составить Таблица 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 выбирается все, но проблема в том, что правое на то и правое, что дополняет правую таблиу левой, и если ниодного параметра дополнительного во второй таблице нет, то возвращается нуль ((( А строка из первой таблицы нужна независимо от того, есть данные во второй таблице или нет... Хелп? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2020, 12:03 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
BearSib строка из первой таблицы нужна независимо от того, есть данные во второй таблице или нет BearSib При использовании LEFT JOIN выбирается только одна строка, что логично ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2020, 13:26 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
с тигали что лефт дополняет левую таблиу правой, левая таблица одна строка правая десять он лефтом тупо находит первое вхождение из правой дополняет эту одну строку из левой и все, работа выполнена для него. Он не смотрит дальше. Составьте запрос и посмотрите как отрабатывает... пока решил вопрос через Join без условия, с дальшейшей обработкой в коде. Но это выглядит как костыль, а хочется изящный запрос ((( ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2020, 13:51 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
BearSib он лефтом тупо находит первое вхождение из правой дополняет эту одну строку из левой и все, работа выполнена для него. Он не смотрит дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2020, 13:57 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
А конструктивные ответы не ждать да? построй запрос конкретный и покажи, что это бред сивой кобылы... 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2020, 15:54 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
BearSib построй запрос конкретный и покажи, что это бред сивой кобылы... Выкладывай CREATE TABLE и INSERT INTO скрипты - будет тебе fiddle. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2020, 15:55 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 01:05 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
BearSibПри использовании LEFT JOIN выбирается только одна строка, что логично логично, когда записали условие в WHERE, и обрубили весь смысл LEFT JOIN пробуйте фокус такой, хотя это очень странно выглядит... Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 10:57 |
|
Проблема с запросом, неправильное построение
|
|||
---|---|---|---|
#18+
Спасибо! я вчера к ночи допер, что все в условия обернул и он по условию ON и WERE мне выдавал, потому и были нули. Вынес условия за скобки и все заработало. Еще раз спасибо! И за наглядный код тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
06.04.2020, 14:37 |
|
|
start [/forum/topic.php?fid=47&msg=39944207&tid=1828656]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 291ms |
total: | 536ms |
0 / 0 |