SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 31.05.2019 04:00:29

dbalor
Участник
Зарегистрирован: 31.05.2019
Сообщений: 4

Вывод пустых записей в запросе

есть справочник тем,

в другой таблице хранится информация по темам разбитая по датам, на каждую дату.

Во второй таблице поле внешнего ключа на справочник тем.

В запросе нужно вывести на каждую дату все четыре темы, если такой темы на дату нет - вывести пустую строку:

дата1 тема1
дата1 тема2
дата1 null
дата1 null
дата2 null
дата2 тема2
дата2 тема3
дата2 тема4

Неактивен

 

#2 31.05.2019 07:49:57

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вывод пустых записей в запросе

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


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 31.05.2019 08:35:38

dbalor
Участник
Зарегистрирован: 31.05.2019
Сообщений: 4

Re: Вывод пустых записей в запросе

LEFT JOIN на данном примере не срабатывает

Справочик уже есть(темы-id и имя темы)

Таблица(PK нет внешние ключи):
fid int(11)
nid int(11)
Podraz varchar(255)
theme int(11) (внешний ключ на справочник)
thname varchar(120)
dd datetime (данная дата)
...

Отредактированно dbalor (31.05.2019 08:36:24)

Неактивен

 

#4 31.05.2019 08:44:21

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вывод пустых записей в запросе

Покажите Ваш запрос с Left JOIN'ом и напишите, что именно не срабатывает. На каких данных запускаете и какой результат хотите получить?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 31.05.2019 08:48:54

dbalor
Участник
Зарегистрирован: 31.05.2019
Сообщений: 4

Re: Вывод пустых записей в запросе

USE dbaisrh;
SELECT *
FROM dirTheme AS thm
LEFT JOIN vOfficeV11 as of ON thm.id=of.theme

Результат(приблизительный):
дата1 тема1
дата1 тема2
дата2 тема2
дата2 тема3
дата2 тема4

Какой результат хочу получить(приблизительный) показан в первом посте

Неактивен

 

#6 31.05.2019 09:35:13

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Вывод пустых записей в запросе

А так?

SELECT *
FROM vOfficeV11 as of
LEFT JOIN dirTheme AS thm ON thm.id=of.theme

Неактивен

 

#7 31.05.2019 11:57:58

dbalor
Участник
Зарегистрирован: 31.05.2019
Сообщений: 4

Re: Вывод пустых записей в запросе

klow, от перемены мест слагаемых сумма не меняется

Неактивен

 

#8 31.05.2019 12:00:14

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: Вывод пустых записей в запросе

в данном случае еще как меняется.
Вы привели полный текст ваших скриптов или там есть еще условия (Where)?

Неактивен

 

#9 31.05.2019 18:03:14

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: Вывод пустых записей в запросе

>от перемены мест слагаемых сумма не меняется
В случае inner join не меняется, в left и right очень даже меняется.

>в другой таблице хранится информация по темам разбитая по датам, на каждую дату.
Даты известны заранее или только из таблицы можно получить?

И покажите структуру таблиц (show create table t) и тестовый набор данных. Без "приблизительно" и "примерно".


Создайте пример похожий на
http://sqlfiddle.com/#!9/a6c585/1
или на худой конец приведите как здесь

https://sqlinfo.ru/forum/viewtopic.php?pid=40086#p40086


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson