0

table_A{id, table_b_id, table_c_id}、 、table_B{id,..}およびの3 つのテーブルがあります。table_C{id}

左結合を使用して、table_B.id で結合されたすべての A を取得しています。

必要なのは、table_C からアイテムの数を追加することです。
サブクエリを使用したくないのですが、可能ですか?

クエリ:

SELECT table_A.*
    FROM table_A
LEFT JOIN table_B
    ON table_B.id = table_A.table_b_id
WHERE table_A.{field} = {condition}
GROUP BY table_A.{some_field}
4

1 に答える 1

2

試す

SELECT table_A.*,
       COUNT(table_C.id) count_of_c
    FROM table_A
LEFT JOIN table_B
    ON table_B.id = table_A.table_b_id
LEFT JOIN table_C
    ON table_C.id = table_A.table_c_id
WHERE table_A.{field} = {condition}
GROUP BY table_A.{some_field}

余談ですが、MySqlGROUP BY拡張機能を使用すると、SELECT一部ではない列を配置できますGROUP BYが、グループ内でどの行を選択するかを判断する方法がないため、そうしないでください。したがって、SELECT句は次のようになります

table_A.{some_field}, <Aggregate function>(table_A.{other_field})...

または、集計の結果を table_A と結合する必要があります。

于 2013-06-11T17:51:36.357 に答える