2012-04-28 111 views
0

我一直在試圖弄清楚這一點,並決定我不會很快弄清楚它!我在這裏先向您的幫助表示感謝。喜歡這個地方。總結一張表,其中列匹配另一張表並加入結果

我有2個表

日期:

date_id, user_id, cost, title, description 

date_rating:

date_id, user_id, rating 

我具有相同date_id但不同user_id的多個條目。換句話說,同一日期的多個評級。評分是1或-1。我想添加所有的評級一起date_id,然後加入到我的DATE表,其中date_id匹配。所以我在表DATE上有一個名爲rating的專欄。這樣我可以按評分排序。聽起來很簡單,但事實證明這並不容易。我猜DBA不是我的東西!

編輯:MySQL客戶端版本:5.0.8 mysqlnd-dev的 - 20102224 - $修訂:310735 $

+0

對不起,這是MYSQL。 – penner 2012-04-28 20:01:05

回答

3

你就不能使用這樣的事情?我在MySQL的不是專家,你要知道(我更多的是SQL Server的傢伙):

SELECT 
    date_id, user_id, cost, title, description, 
    (SELECT SUM(rating) FROM date_rating dr WHERE dr.date_id = d.date_id) AS 'Rating' 
FROM 
    date d 

就相關子查詢來獲得收視率的總和由它的date_id指定的每一個日期?

+0

這個作品謝謝你!我的思想一直在吹。 – penner 2012-04-28 20:07:49

1

您可以使用GROUP BY

SELECT date.*, SUM(date_rating.rating) AS Rating 
FROM date JOIN date_rating USING (date_id) 
GROUP BY date_id; 
0

你必須使用GROUP BY總結收視率。我忽略了表中的成本列。還有,user_id列。似乎只有date_id在這兩個表之間是相關的。下面的查詢是在SQL Server 2012中編寫和測試的,但我認爲SELECT語句應該仍然適用於MySQL,只需稍作更改。

腳本

CREATE TABLE dbo.[date] 
(  
     [date_id]  INT    NOT NULL IDENTITY 
    , [title]   VARCHAR(100) NOT NULL 
    , [description] VARCHAR(100) NOT NULL 
); 

CREATE TABLE dbo.[date_rating] 
(  
     [date_id]  INT    NOT NULL 
    , [user_id]  INT    NOT NULL 
    , [rating]  INT    NOT NULL 
); 

INSERT INTO dbo.[date] ([title], [description]) VALUES 
    ('title 1', 'description 1'), 
    ('title 2', 'description 2'), 
    ('title 3', 'description 3'); 

INSERT INTO dbo.[date_rating] ([date_id], [user_id], [rating]) VALUES 
    (1, 100, 1), 
    (1, 200, -1), 
    (2, 200, -1), 
    (1, 200, 1), 
    (3, 200, 1), 
    (1, 200, -1); 

SELECT  d.[date_id] 
     , d.[title] 
     , d.[description] 
     , SUM([rating]) AS ratings 
FROM  dbo.[date]   d 
INNER JOIN dbo.[date_rating] dr 
ON   d.date_id   = dr.date_id 
GROUP BY d.[date_id] 
     , d.[title] 
     , d.[description]; 

輸出

date_id title description ratings 
------- ------- ------------- ------- 
1  title 1 description 1 0 
2  title 2 description 2 -1 
3  title 3 description 3 1 
相關問題