Вы используете определения псевдонима типа SQL Server, которые не работают в MySQL. Вместо этого используйте AS
, чтобы указать псевдоним (или просто просто укажите имя псевдонима после подзапроса).
SELECT GenreNaam,
(SELECT COUNT(GK.GenreID) FROM GenreKoppel GK
WHERE GK.GenreID = G.GenreID) AS GenreCount -- or just GenreCount
FROM Genre G
Этот запрос также может быть написан с использованием объединения:
SELECT G.GenreNaam,
COALESCE(GK.GenreCount, 0) AS GenreCount
FROM Genre G
LEFT JOIN
(
SELECT GenreID, COUNT(*) AS GenreCount
FROM GenreKoppel
GROUP BY GenreID
) GK
ON G.GenreID = GK.GenreID
Этот альтернативный подход также используется подзапрос, но не коррелируется в отличие от одного в исходном запросе. Я бы ожидал, что подход объединения будет работать быстрее в целом.
Я не думаю, что mysql поддерживает выдачу псевдонимов столбцов, используя: 'Alias = something', вы должны попробовать' something as GenreCount' – Lamak
'GenreCount ='? это действительно? –
@ Fred-ii- Это в SQL Server, но я думаю, что он не поддерживается в mysql – Lamak