簡體   English   中英

匯總一個表,其中列與另一張表匹配,並將結果聯接

[英]Sum one table where columns match another table and join the results

我已經嘗試了好一陣子了,並決定不打算很快解決這個問題! 我在這里先向您的幫助表示感謝。 愛這個地方。

我有2張桌子

日期:

date_id, user_id, cost, title, description

date_rating:

date_id, user_id, rating

我有多個條目具有相同的date_id但具有不同的user_id 換句話說,同一日期的多個評分。 評級為1或-1。 我想將所有評分與相同的date_id一起添加,然后將其加入到date_id匹配的DATE表中。 這樣我在表DATE上有一個稱為rating的列。 這樣,我可以按評分排序。 聽起來很簡單,但事實證明並非如此。 我猜DBA不是我的事!

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

你不能只使用這樣的東西嗎? 我不是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指定的每個日期的評分總和?

您可以使用GROUP BY

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

您必須使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM