mysql - 如何向此查询添加计算 AVG 的第二个联接?

标签 mysql database join

我有一个查询,它连接两个表并按歌曲 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/

相关文章:

java - 从数据库中检索数据并将新数据写入mysql

linq - 您可以在非表达式 linq 中压缩或使用自定义连接运算符吗?

mysql - 添加 ORDER BY 会显着减慢 JOIN 查询,即使所有相关列都已编制索引。我怎样才能让它更快?

mysql - 从两个表中查找唯一 ID 并从两个表中查找相应的计数

android - Android中单个应用程序中的多个数据库

php - 插入数据库时​​将单词更改为数字

php - SQL 计算个人最佳表中所有时间记录中保存的记录

java - tomcat war代码可见?

php - 如何将 mysql 表转换为 php 中的文本文件?

database - 如何将不同的Cassandra表存储在不同的存储介质上?