とサブクエリで結果をカウントし、私はそれらをカウントし、別のクエリMySQLの私はUNIONでいくつかのクエリを持っている組合
例で行として表示したい:私は、「クライアント」と呼ばれるテーブルを持って、彼らが購入することができますstore1、store2や店舗3に、私は自分の名前を表示する必要があり、彼らは「販売」と呼ばれる行に買ってどのように多くの項目
SELECT name,COUNT(*) FROM(
SELECT 1 FROM store1 WHERE store1.client=clients.id
UNION
SELECT 1 FROM store2 WHERE store2.client=clients.id
UNION
SELECT 1 FROM store3 WHERE store3.client=clients.id
) sales
FROM clients
ジョンは店舗2から2つのアイテムや店舗3から1つのアイテムを、購入した場合とメアリーは何も買っていない、期待される結果は次のようなものです:
name | sales
------------
john | 3
mary | 0
しかし、私が持っていることは、このエラーである:
Unknown column 'clients.id' in 'where clause'
私はあなたを願っています:これは私は、このエラーを与える
SELECT name,(
SELECT COUNT(*) FROM(
SELECT 1 FROM store1 WHERE store1.client=clients.id
UNION
SELECT 1 FROM store2 WHERE store2.client=clients.id
UNION
SELECT 1 FROM store3 WHERE store3.client=clients.id
) xxxx -- (mandatory table name)
) sales
FROM clients
:これは別の選択サブクエリを使用して別の試みである
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 'FROM clients'
私を助けることができる、事前にありがとう!
0カウントのクライアントを希望する場合、私の例では内部結合を正しいものにする必要があります。 – xQbert
あなたは正しいです、それを解決策としてマークするために、右ジョインのクエリを編集できますか? – stramin