从第二个表php分组的帖子

时间:2013-09-26 18:13:29

标签: php mysql

这对我来说是一个很复杂的查询,但如果有人有想法请发帖ID ...

我想做这样的事情

第1页
 发布
 发布
 张贴

第2页
 发布
 发布
 交

这是我的查询

$result = mysql_query("SELECT content.* FROM content WHERE content.site IN
          (SELECT site_id FROM site_subscription WHERE user_id = ".$_SESSION['userid'].")
          ORDER by content.site DESC");

while($row = mysql_fetch_assoc($result)) {
         $array[] = $row;
}

和我展示帖子

if(is_array($array)) {  
    foreach($array as $row) {
        include($basepath.'/template/item.php');
    }
} 

这是有效的,帖子按site_id排序,但需要从其他表格中获取 site_name ,表格名称网站,而不是 site_name 喜欢以上站点1,站点2,站点3

喜欢的东西 SELECT * FROM site WHERE id='content.site'

3 个答案:

答案 0 :(得分:0)

  

" SELECT * FROM content INNER JOIN site ON content.site = site.id

     

WHERE site.id IN(

  SELECT site_id FROM site_subscription 

          WHERE user_id = ".$_SESSION['userid'].")
     

ORDER BY site.name"

答案 1 :(得分:0)

$result = mysql_query("SELECT content.* FROM content
                       INNER JOIN site ON content.site = site.id
                       WHERE content.site IN
                       (SELECT site_id FROM site_subscription WHERE user_id = ".$_SESSION['userid'].")
                       ORDER by content.site DESC");

答案 2 :(得分:0)

执行JOIN而不是子查询。尝试这样的事情:

SELECT content.*, site_name, FROM content 
JOIN site_subscription ON content.site = site_id
WHERE site_subscription.user_id = <USER_ID>
ORDER by content.site DESC
GROUP BY site_name

MysSQL将处理此查询,但它不完全正确。实际上,您无法选择content.*,因为在对行进行分组时,您只需选择聚合字段。