Запрос:
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 человек
Чуть подробнее объясню:
Вы не можете использовать фильтры или джоины после группировки, в SQL важна последовательность операторов
Примерно так:
SELECT (возврат результирующего датасета)
FROM (выбор таблицы)
JOIN (комбинация с подходящими по условию данными из других таблиц)
WHERE (фильтрация строк)
GROUP BY (агрегирование данных)
HAVING (фильтрация агрегированных данных)
ORDER BY (сортировка).