В настоящее время я пытаюсь получить объект из одной таблицы с глобальной статистикой, включая ежедневную статистику со второй таблицы. Для этого я использую следующий запрос на соединение, который работает до тех пор, пока statsTable содержит соответствующую строку для столбцов «» и «Date
».Получить столбцы из двух таблиц с резервным значением
SELECT
o.ID as ID,
o.Image as Image,
o.Text as `Text`,
o.Views as `Views`,
o.Clicks as Clicks,
COALESCE(s.Views, 0) as DayViews,
COALESCE(s.Clicks, 0) as DayClicks
FROM objectTable o
LEFT JOIN statsTable s
ON o.ID = s.oID
WHERE o.userID = 1
AND DATEDIFF(CURDATE(), s.Date) < 1
LIMIT 1
Как мне изменить запрос, чтобы получить строку результатов, даже если statsTable не содержит соответствующую строку?
Запрос не дает ошибок, я просто не хочу, чтобы он возвращал пустой результат, поскольку я точно знаю, что есть данные в objectTable.
вы уже используете левый join. это ан. пожалуйста, проверьте без условия –
, как я уже сказал, да: левое соединение работает ** если ** statsTable имеет данные для соединения. Но я хочу получить результат, даже если данные отсутствуют. Что я должен использовать вместо 'Where'? – DosMike1