2013-09-24 71 views
1

快速簡介:剛纔我通過使用下面的代碼獲取結果列表。我試圖將u_feed的結果分組爲c_feedid's。mysql php按分類名稱分組

$uid = '15';

SELECT u.uid, u.fid, f.url,f.icon, u.title, f.favicon, f.domain FROM u_feed u INNER JOIN feed f ON f.id = u.fid WHERE u.uid = '$uid'

我剛纔說的表稱爲c_feed將舉行的name和每個類別的uid。然後u_feed表將使用列cid檢查c_feedid

表c_feed

enter image description here

表飼料 enter image description here

表u_feed enter image description here

我試圖 SELECT u.uid, u.fid, f.url, f.icon, u.title, f.favicon, f.domain, c.cname FROM u_feed u INNER JOIN feed f ON f.id = u.fid INNER JOIN c_feed c ON c.id = u.cid WHERE u.uid = '15' LIMIT 0 , 30

這隻返回 enter image description here

但應(下圖不進行分組),有11個行

enter image description here

回答

1

這是你的inner join只包括記錄,如果有一個相關的記錄在c_feed中。所以你回來的唯一記錄是兩個WITH a cid

您可能正在尋找left join s。

SELECT u.uid, u.fid, f.url, f.icon, u.title, f.favicon, f.domain, c.cname 
FROM u_feed u 
LEFT JOIN feed f ON f.id = u.fid 
LEFT JOIN c_feed c ON c.id = u.cid 
WHERE u.uid = '15' LIMIT 0 , 30 
+0

因爲'cid'的某些行是'0',所以它們不會顯示在結果中,所以我已經使用了類似的東西,還有另一個'0' – ngplayground