0

さて、私の質問は、異なるテーブルで同じ名前の列を数えてグループ化する (mysql)に似ていますが、インターネットで正確な解決策を探している人 (私のように) に役立つ可能性があるため、2 つの質問を分けています。

したがって、私のテーブルは上記のリンクのテーブルと似ていますが、いくつかの新しい列があります テーブル 1:

id age gender published
1   10  M       1
2   11  F       1
3   11  F       0

表 2:

id table1id age gender
1    2       11   F
2    2       12   M
3    3       12   M

公開 = 1 である両方のテーブルの行をカウントしてグループ化したいと考えています。テーブル 1 のサブセットです。したがって、結果は次のようになります。

age count
10  1
11  2
12  1

テーブル 1 の 3 行目は、published が 0 であるためカウントされません。また、テーブル 2 の 3 行目は、table1id = 3 であるためカウントされません。これは、テーブル 1 の 3 行目のサブセットであることを意味します (published = 0)。

ご協力いただきありがとうございます :)

4

1 に答える 1

1

これを試して:

SELECT age, COUNT(age) cnt
FROM
(
    SELECT
        T2.age 
    FROM Table1 T1
        JOIN Table2 T2
            ON T1.Id = T2.table1id
    WHERE T1.published = 1
    UNION ALL
    SELECT age
    FROM Table1
    WHERE published = 1
) A
GROUP BY age
于 2013-02-01T07:34:44.007 に答える