Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей

1 Знаток (286), на голосовании 1 год назад
Найди информацию о погоде и названиях купленных товаров за все дни (включая те, когда покупок не было). Отсортируй данные по убыванию даты и выведи первые 30 строк.

Выведи дату (date), температуру (temp), наличие дождя (rain) и название товара (name).

Получи:
date из таблицы weather;
temp из weather;
rain из weather;
name из products.

Способом LEFT JOIN присоедини к weather таблицу transactions по полю date. Затем присоедини к transactions и таблицу products по полю id_product.

Мое решение:

SELECT
CAST( weather.date AS date),
weather.temp AS temp,
weather.rain AS rain,
products.name AS name

FROM
weather

LEFT JOIN transactions ON CAST ( transactions.date AS date) = CAST ( weather.date AS date)
LEFT JOIN products ON transactions.id _product = products.id _product

ORDER BY
date DESC

LIMIT
30;

тренажер ругается
Голосование за лучший ответ
P̲u̲t̲ i̲n̲ Мудрец (15413) 1 год назад
Ваш запрос выглядит хорошо, но есть несколько маленьких ошибок. Вместо нижнего подчеркивания в id_product, вы использовали пробел. Исправленный запрос:
 SELECT 
CAST(weather.date AS date) AS date,
weather.temp AS temp,
weather.rain AS rain,
products.name AS name
FROM
weather
LEFT JOIN transactions ON CAST(transactions.date AS date) = CAST(weather.date AS date)
LEFT JOIN products ON transactions.id_product = products.id_product
ORDER BY
date DESC
LIMIT
30;
Этот исправленный запрос должен работать без проблем. Он выполняет операцию LEFT JOIN для таблиц transactions и products, исключая лишние пробелы в идентификаторах полей.
Похожие вопросы