mysql连接语句
我有一个分类页面,我在其中显示特定类别下的所有图像…我还有一个下拉列表,使用它我可以根据为该图像编写的故事数对图像进行排序。。。 为了实现这一点,我使用连接语句,因为媒体和故事是两个不同的表mysql连接语句,mysql,Mysql,我有一个分类页面,我在其中显示特定类别下的所有图像…我还有一个下拉列表,使用它我可以根据为该图像编写的故事数对图像进行排序。。。 为了实现这一点,我使用连接语句,因为媒体和故事是两个不同的表 media table has mediaid,catid,userid,link 及 我正在以这种方式使用JOIN语句 SELECT count(story.id) as cnt,story.mediaid as id,media.cat_id,media.link,media.userid FROM
media table has mediaid,catid,userid,link
及
我正在以这种方式使用JOIN语句
SELECT count(story.id) as cnt,story.mediaid as id,media.cat_id,media.link,media.userid
FROM story RIGHT JOIN
media ON story.mediaid=media.mediaid where cat_id='25' group by story.mediaid order by cnt desc limit 0,8
但是我只得到有故事的图像…我想要所有的结果,这样即使某个特定的图像没有故事,我们也可以显示0个故事…我们可以通过不改变表结构而只改变sql语句来实现吗??
请帮助…-正确的加入是可以的,
按故事分组是个问题:你想按图像分组,不是吗
请尝试按媒体分组。请改为按媒体ID分组 您需要翻转SQL并改用左连接:
SELECT count(story.id) as cnt, media.mediaid, media.catid, media.userid, media.link
FROM media LEFT OUTER JOIN story ON media.mediaid = story.mediaid
WHERE media.catid = '25'
GROUP BY media.mediaid, media.catid, media.userid, media.link
ORDER BY cnt DESC
SELECT count(story.id) as cnt, media.mediaid, media.catid, media.userid, media.link
FROM media LEFT OUTER JOIN story ON media.mediaid = story.mediaid
WHERE media.catid = '25'
GROUP BY media.mediaid, media.catid, media.userid, media.link
ORDER BY cnt DESC