2011-04-21 100 views
1

我记得在数据库类中做了这种感觉像很久以前,但不能回想起来,似乎无法搜索正确的话。SQL与子查询

我试图从根本上转变一个查询,产生一个foreach,然后运行另一个查询基于从第一个信息,到一个查询。更清楚的是,我有两个表格成员和条目。对于我们的目的,成员具有两列member_id,member_name,并且条目具有entry_id,channel_id,author_id。 Author_id是member_id的FK。

我想要每个作者的条目数,并在一个SQL语句中执行。因此,我需要首先列出成员标识,然后获取每个成员标识并查询条目表,以了解author_id = member_id的条目数。

编程它会是这个样子(不完整的代码obvi):

$mems = select member_id from members_table; 
foreach($mems as $cur_mem) { 
    $entry_count = select count(*) from entries_table where author_id=$cur_mem[member_id]; 
    echo $entry_count; 
} 

这是MySQL和使用CMS称为ExpressionEngine,这是这个头痛的解决方案的原因。描述这个问题很困难,所以我可以澄清任何问题。

谢谢!

回答

1

尝试此查询:

SELECT member_id, 
     COUNT(author_id) 
FROM members_table m 
     INNER JOIN entries_table 
     ON author_id = member_id 
GROUP BY member_id 
+0

完美的感谢!我相信这个小组是我缺失的链接。再次感谢! (与此同时,我写了一个表达式引擎插件来做到这一点,如果需要,我会在这里连接起来)。 – 2bsharpdev 2011-04-21 21:07:29