我有一个查询,它连接两个表并按歌曲 ID 计算第二个表中的总数。
如何修改此查询以再次包含第三表 ($sTable3) 中“评级”列的平均值,并使用相同的歌曲 ID。
$sQuery = "
SELECT SQL_CALC_FOUND_ROWS ".str_replace(" , ", " ", implode(", ", $aColumns))."
FROM $sTable b
LEFT JOIN (
SELECT COUNT(*) AS projects_count, a.songs_id
FROM $sTable2 a
GROUP BY a.songs_id
) bb ON bb.songs_id = b.songsID
$sWhere
$sOrder
$sLimit
";
这一切都放入 JSON 数组中,我想在新列“评级”下返回此“平均值”。
总结一下(据我所知,我可能没有很好地表达这一点):-
我有三个表$sTable、$sTable2、$sTable3。三者共享一个 SongID 列。我当前的查询连接前两个查询并完全按照我想要的方式返回所有结果。不过,我还需要从 $sTable3 的“评级”列中检索与 SongID 相关的数据。
最佳答案
不得不猜测你的很多问题,因为你没有透露太多有关设置的信息,只是透露了一些(莫名其妙地命名的)变量。
SELECT songs.title, AVG(ratings.rating), COUNT(something.songs_id)
FROM songs
LEFT JOIN something ON (songs.songs_id=something.songsID)
LEFT JOIN ratings ON (songs.songs_id=ratings.songsID)
GROUP BY songs.title
关于mysql - 如何向此查询添加计算 AVG 的第二个联接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297921/