私は現在、学習目的で基本的なストアフロントアプリを構築することで遊んでいます。
MySQLデータベースの「items」と「field_values」に1対多の関係を持つ2つのテーブルがあります。フィールドテーブルとフィールドセットテーブルもありますが、これらはクエリとは関係ありません。セットには多くのフィールドを含めることができ、アイテムには1つ以上のフィールドのセットがあります。
ID、名前
set_id、item_id、field_1、field_2、field_3など。
エンドユーザーがこれらのフィールドの値に基づいて結果をフィルタリングできるようにする動的クエリを作成したので、2つのフィールドがフィルタリングされると、次のようなクエリが発生します(疑似)
SELECT * FROM items LEFT JOIN field_values WHERE field_1=2 and field_2=7
私の質問は、残りのオプションの数を表示するためにこれをどのように拡張するかです。言い換えると、上記のクエリで1つの結果セットが得られますが、field_3、field_4などの各値のカウントも取得して、ユーザーが取得する結果の数を事前に把握できるようにしたいので、次のようなオプションを提示することはできません。 0の結果を返します。
それが理にかなっていることを願っています。
前もって感謝します
アンディ
今とwhere
同じように句を作成します。次に、列をフェッチする代わりに、集計クエリを実行します。
SELECT field_1, field_2, field_3, count(*)
FROM items LEFT JOIN
field_values
WHERE field_1 = 2 and field_2 = 7
GROUP BY field_1, field_2, field_3;
これにより、他の値のすべての組み合わせが得られます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加