テーブルのカウントを取得するクエリを作成しようとしています(アイテムと呼ぶ)、2つの異なるもので分類され、タイプとコードと呼ばれます。私が出力として望んでいるのは次のとおりです:ダブルグループを持つクエリから0のカウントを取得する
Type Code Count
1 A 3
1 B 0
1 C 10
2 A 0
2 B 13
2 C 2
などです。
タイプとコードの両方がルックアップテーブルにあり、各アイテムは1つのタイプだけで複数のコードを持つことができるため、コードのピボット(別名ジャンクションまたは結合)テーブルもあります。
Type Code Count
1 A 3
1 C 10
2 B 13
2 C 2
と(省略結合条件を持つ)のように見える:私はこの結果を得ることができ、クエリを持って
SELECT typelookup.name, codelookup.name, COUNT(item.id)
FROM typelookup
LEFT OUTER JOIN item JOIN itemcodepivot
RIGHT OUTER JOIN codelookup
GROUP BY typelookup.name, codelookup.name
は、私は結果を取得するには、このクエリを変更する方法はあります探している?これが重要なのであれば、これはMySQLにあります。私は実際にこれがすべて1つのクエリで可能であるとは確信していませんが、もしそれが本当なら、どうやって知りたいのですか。任意のアイデアをありがとう。
これはうまくいきません...私は1 A = 2 A = 3A、1B = 2B、それらのどれも0ではありません。 – Maltiriel
これは理論的には機能するはずです...カウントが0の行がない場合は、何かが間違っています。あなたの 'join on'節の代わりに' where'節の項目を除外していますか? –
WHERE句の唯一のものは、型とコードの両方がアクティブである(t.active> 0かつc.active> 0であることを確認する)ことです。そうでなければあなたが入力したのとまったく同じです。 – Maltiriel