我有三张桌子:
表1: post : id、uid、post、created
表2:用户: id、用户名、电子邮件等
表3: PostLikes: id,pid,uid
我希望创建一个查询,将选择10个帖子连同用户名和不喜欢每个帖子。没有喜欢的帖子我想要0。我在喜欢的表中插入了一条记录,比如post id 50。现在,我的查询的问题是,对于每个帖子,我都会得到1的不喜欢。
以下是我的查询:
SELECT x.count as likes,
a.id,
a.uid,
a.post,
a.created,
b.username,
b.photo
FROM (
SELECT count(*) AS count
FROM postlikes AS c
JOIN posts AS d
ON c.pid=d.id
) x
JOIN posts AS a
JOIN user AS b
ON a.uid=b.id
LIMIT 0,10发布于 2014-02-13 13:02:22
这是一个很好的例子,一个案例,需要组由。
select u.username
, p.created
, p.post
, p.id -- post_id
, p.uid -- user_id
, count(pl.pid) likes
from users u
join posts p on u.id = p.uid
left join postlikes pl on pl.pid = p.id
group by u.username
, p.created
, p.post
, p.id
, p.uid发布于 2014-02-13 13:10:51
再长一点,但会有帮助
select u.username,p.created,p.post,p.id,p.uid,
(select count(*) from postlikes where postlikes.pid = p.id and postlikes.uid = u.id ) as likes
from users u
join posts p on u.id = p.uid
group by u.username ,p.created,p.post,p.id,p.uidhttps://stackoverflow.com/questions/21754909
复制相似问题