這裏所說:在同一個查詢中獲取用戶羣投票的平均數和個人用戶的投票數?
T1
[id] [desc]
1 lovely
2 ugly
3 slender
T2
[id] [userid] [vote]
1 1 3
1 2 5
1 3 2
2 1 1
2 2 4
2 3 4
在一個查詢(如果可能的話),我想回:
T1.id, T1.desc, AVG(T2.vote), T2.vote (for user viewing the page)
我能得到前3項有:
SELECT T1.id, T1.desc, AVG(T2.vote)
FROM T1
LEFT JOIN T2 ON T1.id=T2.id
GROUP BY T1.id
和我可以得到第一,第二和第四項:
SELECT T1.id, T1.desc, T2.vote
FROM T1
LEFT JOIN T2 ON T1.id=T2.id
WHERE T2.userid='1'
GROUP BY T1.id
但我不知道如何獲得一個查詢中的所有四個項目。我試圖插入一個選擇作爲第四項:
SELECT T1.id
, T1.desc
, AVG(T2.vote)
, (SELECT T2.vote
FROM T2
WHERE T2.userid='1') AS userVote
etc
etc
,但我得到一個錯誤的select returns more than one row...
幫助?
我希望在一個查詢而不是兩個查詢中做到這一點的原因是,我希望能夠對MySQL中的數據進行排序,而不是將其分割爲多個數組。
它有!謝謝大衛。我想我是在(SELECT)的正確軌道上,但沒有完成它的訣竅。我從來沒有見過LEFT JOIN .. USING()之前,我需要閱讀USING對此查詢有何影響。 **非常感謝你!!! ** – Drew 2010-05-19 05:58:08