2009-08-12 70 views
0

我有一個類別頁面,其中我顯示所有圖像下一個特定類別...我也有一個下拉使用我可以根據圖像的故事數量排序圖像... 要做到這一點,我使用JOIN怎麼把媒體和故事是兩個不同的表聲明...mysql加入聲明

media table has mediaid,catid,userid,link 

story table has storyid,mediaid,storyheading,storycontent 

我使用這種方式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語句? 請幫助... -

回答

0

你需要翻轉你的SQL和使用LEFT JOIN代替:

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 
+0

感謝ü非常...^_ ^ – Sakura 2009-08-12 17:15:59

0

right join是確定的,該group by story的問題是:您想通過組圖片,是不是?

嘗試group by media.mediaid取而代之!

+0

感謝ü烏拉圭回合的幫助...^__^ – Sakura 2009-08-12 17:15:25