Может кто подскажет правильно ли составил запрос sql?
Есть три таблицы: CUSTOMERS (ID, NAME, MANAGER_ID); MANAGERS (ID, NAME); ORDERS (ID, DATE, AMOUNT, CUSTOMER_ID). Написать запрос, который выведет имена Customers и их SalesManagers, которые сделали покупок на общую сумму больше 10000 с 01.01.2013.
SELECT customers.name, managers.name
FROM customers JOIN managers JOIN orders
ON (managers.id = orders.customers_id) and (orders.date > 01.01.2013) and (orders.amount > 10000)
Никогда не изучал sql , просто нужно сейчас решить несколько заданий
Никогда не изучал sql , просто нужно сейчас решить несколько заданий
Так сперва изучите, и только потом пишите запросы - в точном соответствии с документацией. Сервер - он дурак, и никогда не согласится понимать синтаксис, который Вы для него придумали...
ebaysher, казалось бы, как понять, правильно ли написан запрос?
Взять его да выполнить. Все - лучший критерий.
Но мы ж хитрожопые. Мы не хотим писать запрос, мы хотим, что бы кто-то сделал это за нас.
Тогда что? правильно! Берем несколько ключевых слов, примерно пишем их (иной раз просто в случайном порядке), кидаем это все на сайт и на голубом глазу типа спрашиваем "а где я тут ошибся?"
BorLaze, апхахахаахахах, слушай чел, я что тебе лично написал что ли? И вообще у тебя своих дел нет что ли? У меня были весомые причины задать этот вопрос здесь.
Не трепи нервы другим пожалуйста. Всего тебе хорошего.
Запрос неверен синтаксически.
1. Каждый JOIN обязан иметь свой ON. Это только MySQL/MariaDB лояльно относится к таким вещам.
2. Литералы даты должны быть обрамлены кавычками - это как минимум. А кроме того, формат литерала даты должен чётко соответствовать таковому для используемой СУБД - возможно, даже нужно использовать функцию преобразования строкового значения в дату.
3. Формально - запрос должен быть завершён символом точки с запятой.
Запрос неверен логически.
1. Отсутствует связь между заказом/менеджером и покупателем.
2. Отсутствует подсчёт общей суммы заказов покупателя.
3. Не предусмотрен вариант, когда у покупателя посередь периода сменился менеджер (менеджеры увольняются, да...). Впрочем, он не предусмотрен и в задании...
4. Задание требует "с 01.01.2013", т.е. включительно, а в условии отбора используется строгое неравенство.