这里所说:在同一个查询中获取用户群投票的平均数和个人用户的投票数?
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