Задавайте вопросы, мы ответим
Вы не зашли.
есть справочник тем,
в другой таблице хранится информация по темам разбитая по датам, на каждую дату.
Во второй таблице поле внешнего ключа на справочник тем.
В запросе нужно вывести на каждую дату все четыре темы, если такой темы на дату нет - вывести пустую строку:
дата1 тема1
дата1 тема2
дата1 null
дата1 null
дата2 null
дата2 тема2
дата2 тема3
дата2 тема4
Неактивен
LEFT JOIN в помощь (не INNER, а именно LEFT), если же нужен точный запрос, то дайте структуру таблиц и тестовый набор данных.
Неактивен
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)
Неактивен
Покажите Ваш запрос с Left JOIN'ом и напишите, что именно не срабатывает. На каких данных запускаете и какой результат хотите получить?
Неактивен
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
Какой результат хочу получить(приблизительный) показан в первом посте
Неактивен
А так?
Неактивен
klow, от перемены мест слагаемых сумма не меняется
Неактивен
в данном случае еще как меняется.
Вы привели полный текст ваших скриптов или там есть еще условия (Where)?
Неактивен
>от перемены мест слагаемых сумма не меняется
В случае inner join не меняется, в left и right очень даже меняется.
>в другой таблице хранится информация по темам разбитая по датам, на каждую дату.
Даты известны заранее или только из таблицы можно получить?
И покажите структуру таблиц (show create table t) и тестовый набор данных. Без "приблизительно" и "примерно".
Создайте пример похожий на
http://sqlfiddle.com/#!9/a6c585/1
или на худой конец приведите как здесь
https://sqlinfo.ru/forum/viewtopic.php?pid=40086#p40086
Неактивен