表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)
你参考一下
`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;`
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。