2011-04-21 73 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