2013-09-24 70 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