开发者社区> 问答> 正文

mysql多表连接查询,如何写sql语句?

表1(用户的评论):comment_id,user_id,comment
表2(用户):user_id,user_name
表3(对某评论的投票):comment_id,user_id,vote
我主要是想查询出这样的数据(表1.comment,表2.user_name,SUM(表3.vote))
我的sql语句是这样的
SELECT 表1.comment_id,表1.user_id,comment,user_name,SUM(vote)
FROM (表1 INNER JOIN 表2 ON (表1.user_id = 表2.user_id))

  LEFT JOIN 表3 ON (表1.comment_id = 表3.comment_id) 

WHERE 表1.user_id REGEXP :user_id AND 表1.music_id REGEXP :music_id
但是失败了,请问应该怎样写呢?
另外如果去掉LEFT JOIN的部分则剩下的没问题,
就是可以获得正确的(表1.comment,表2.user_name)

展开
收起
落地花开啦 2016-02-14 14:54:09 3263 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    你参考一下
    `SELECT comment,user_name,SUM(vote)
    from (
    SELECT 表1.comment_id,表1.user_id,comment,表2.user_name,表3.vote
    FROM 表1
    INNER JOIN 表2 ON (表1.user_id = 表2.user_id))
    LEFT JOIN 表3 ON (表1.comment_id = 表3.comment_id)
    WHERE 表1.user_id REGEXP :user_id

    AND 表1.music_id REGEXP :music_id /*music_id是什么列?*/

    ) as t
    group by comment_id,user_id
    order by null;`

    2019-07-17 18:42:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像