带子查询的SQL

时间:2011-04-21 18:31:47

标签: php mysql expressionengine

我记得在DB课程中就像很久以前一样,但是无法回想起它,似乎无法找到正确的单词。

我试图基本上转换生成foreach的查询,然后根据第一个查询中的信息运行另一个查询。更清楚的是,我有两个表成员和条目。为了我们的目的,成员有两列member_id,member_name,条目有entry_id,channel_id,author_id。 Author_id是member_id的FK。

我希望每个作者都有一个条目计数,并在一个SQL语句中完成。所以我首先需要一个成员id的列表然后获取每个成员id并查询entries表以获取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并使用名为ExpressionEngine的CMS,这是解决方案头痛的原因。很难描述这个问题,所以我可以澄清任何问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试此查询:

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