2 つのテーブルのデータを結合しようとしました。
こんなエラーが出ました。理由がわかりますか?
すべての派生テーブルには独自のエイリアスが必要です
SELECT a.title, number
FROM store a
JOIN
( SELECT count(b.code) as number
FROM redeem_codes b
WHERE product = a.title
AND available = "Available")
テーブル構造について詳しく知らなければ、それを伝えるのは少し難しいです。とにかく試してみます:
SELECT a.title, count(b.code) AS number FROM store a
LEFT JOIN redeem_codes b ON b.product = a.title
WHERE b.available = "Available"
GROUP BY a.title;
ALIAS
サブクエリに必要です。
SELECT a.title, number
FROM store a
JOIN (subquery) b -- b is the `ALIAS`
-- and this query will not give you the result you want
ただし、サブクエリを使用しないより効率的なクエリを次に示します。
SELECT a.title, count(b.code) number
FROM store a
INNER JOIN redeem_codes b -- or use LEFT JOIN to show 0
-- for those who have no product
ON b.product = a.title
WHERE b.available = 'Available'
GROUP BY a.title