2014-03-03 75 views
2
 
Table reports : 
id  (int) 
catid (int) 
pub_date (datetime) 
 
Table categories : 
id   (int) 
parent_id (int) 

我想用計數(ID)報告結果的和group by CATID的PARENT_ID。Mysql的嵌套查詢有兩個關係表

例如:

 
Date   Count(parent_id = 1) Count(parent_id = 2) Count(parent_id = 3)
2014-02-24 2 5 8

我們應該得到每天只一行的結果。

非常感謝。

+0

可能重複的[如何創建SQL Server中的樞軸查詢而不聚集函數(http://stackoverflow.com/questions/14618316/如何創建一個樞軸查詢在SQL服務器沒有聚合函數) –

回答

0

如何使用下述查詢(SQL Fiddle):

SELECT SUM(CASE WHEN r.id = 1 THEN 1 ELSE 0 END) AS PID_1, 
     SUM(CASE WHEN r.id = 2 THEN 1 ELSE 0 END) AS PID_2, 
     SUM(CASE WHEN r.id = 3 THEN 1 ELSE 0 END) AS PID_3 
FROM reports AS r 
INNER JOIN categories AS c ON c.parent_id = r.id 
GROUP BY r.pub_date 
+0

正確的數據庫結構在這裏(http://sqlfiddle.com/#!2/178ed) 謝謝你你的幫助。 – vural

+0

*** @ vural ***,下面[** SQL小提琴**](http://sqlfiddle.com/#!2/178ed/7/0)怎麼樣?這是你想要的?僅供參考,在你的SQL小提琴中'''鏈接到'報告'的唯一日期是** 2014-02-24 **所以你只能得到一個記錄返回。如果有更多的日期,「類別」鏈接到那麼你會得到更多的記錄,每一個日期。另外,報告中沒有「0」編號。 – Linger

+0

我的報告表中有很多數據。所以我不能使用查詢。報告的日期是不同的,它們的形式就像日期時間(Y-m-d H:i:s)在db中。我顯然希望按照報告'cat_id'的parent_id的順序得到結果。 感謝您的關注。 – vural