Задать вопрос
@cntfrgthr

Ошибка в SQL запросе, как исправить?

Запрос:
SELECT Countries.name, COUNT(Countries.name) as 'count' FROM Countries GROUP BY Countries.name LEFT JOIN Cities on Countries.id = Cities.country_id LEFT JOIN Companies on Companies.city_id = Cities.id WHERE Companies.labors >= 1000;

Ошибка:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN Cities on Countries.id = Cities.country_id LEFT JOIN Companies on Comp' at line 1

Таблицы:
Cities - список городов

id - первичный ключ
name - название
population - численность населения
founded - год основания
country_id - id страны

Countries - список стран

id - первичный ключ
name - название
population - численность населения
gdp - валовый продукт в долларах

Companies - компании

id - первичный ключ
name - название
city_id - город в котором находится штаб-квартира
revenue - годовая выручка в долларах
labors - численность сотрудников

Задание:

Постройте таблицу, где для каждой страны посчитано число компаний, удволетворяющих условиям:

1) штаб квартира компании находится в этой стране
2) число сотрудников компании не менее 1000 человек
  • Вопрос задан
  • 462 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
igordance
@igordance
Чуть подробнее объясню:
Вы не можете использовать фильтры или джоины после группировки, в SQL важна последовательность операторов
Примерно так:
SELECT (возврат результирующего датасета)
FROM (выбор таблицы)
JOIN (комбинация с подходящими по условию данными из других таблиц)
WHERE (фильтрация строк)
GROUP BY (агрегирование данных)
HAVING (фильтрация агрегированных данных)
ORDER BY (сортировка).
Ответ написан
Комментировать
v3shin
@v3shin
Веб-шаман
GROUP BY ... перенесите в конец запроса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы