Вот так:
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 вместо того, чтобы разбивать их на несколько массивов.