2013-02-01 25 views
0

好吧,我的問題是類似Counting and grouping same named column in different tables (mysql),但因爲它可能會幫助人們尋找確切的解決方案在互聯網上(比如我),我分開的兩個問題。計數並在不同的表分組名稱相同的列(其中僅從一個表子句)

所以我的表看起來類似於上面的鏈接,用一些新的列 表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中由table1id給出的行公佈值table1id是表1中的行表示的是表2的ID是表1因此,結果的子集應該看起來像下面這樣:

age count 
10 1 
11 2 
12 1 

注意,從表1第三行不計,因爲發佈是0而從表2第三行不計,因爲table1id = 3,這意味着它的表1的第3行的子集(其已出版= 0)

感謝您的幫助:)

回答

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 
+0

哇,你快...感謝一噸...它的作品!一旦我明白髮生了什麼事,我會將其設置爲正確的答案嗎? XD編輯:好吧得到它,謝謝你的幫助:) – pewpewlasers

相關問題