MySQLでは機能しないSQL Serverスタイルの別名定義を使用しています。代わりに、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
をこの代替アプローチは、サブクエリを使用しますが、それはあなたの元のクエリ内の1つのとは違って相関していません。私は、ジョイン・アプローチが一般的に速く実行されることを期待しています。
私は、 'Alias = something'を使ってカラムエイリアスを与えることをサポートしているとは思っていません。何かをGenreCountとして試してください。 – Lamak
' GenreCount = '?それは有効ですか? –
@ Fred-ii-これはSQL Serverにありますが、MySQLでサポートされていないと思います。 – Lamak