2011-07-20 48 views
0

我有一個MySQL表comment具有以下字段其相應的登錄ID在一個表中總結現場:MySQL的連接查詢基於另一個表

loginid submissionid points 

我有一個MySQL表稱爲submission具有以下字段:

loginid submissionid 

對於給定的submissionid,這兩個表的表示loginid不同的東西,因此做也不對應。

我想加入總結points通過loginid。但是,並不是comment中的loginid,而是submission中的登錄ID。這兩個表之間的連接是通過submissionid

我無法得到這個工作。以下是我到目前爲止。我試圖從每個從另一個第三個表中獲取的登錄ID中獲得所需的總和,這就是l.loginid表示的值。

我該怎麼做?

LEFT JOIN (
    SELECT C2.submissionid, C2.loginid SUM(points) AS total 
    FROM comment C2 
    INNER JOIN submission S2 
    ON S2.submissionid = C2.submissionid 
    GROUP BY C2.submissionid 
) cscs ON cscs.loginid = l.loginid 

回答

2
SELECT S2.loginid, SUM(points) AS total 
FROM submission S2 
INNER JOIN comment C2 
ON S2.submissionid = C2.submissionid 
GROUP BY S2.loginid 

這會給你一個點和在提交表中的每個登錄ID。

+0

看起來不錯,但它似乎並沒有工作。 「點」字段不在提交表中,那麼提交仍然可以在FROM之後? – John

+0

'points'只要在聯接中的某個表中有一列,或者如果您願意,可以將它寫爲'C2.points'。 – Neil

+0

它只能和SUM(C2.points)一起使用......但它起作用。太好了,謝謝。 – John