2014-04-27 106 views
1

我有一個子查詢選擇查詢在其上表:加入計數從一個表從另一個選擇 - mysql的

select UserName, Name, anniversaryDate, RegionCode 
from a where UserName in 
(
    select Username from 
    (
     select Username, max(timeUsed) 
     from log_table where role='Cou' 
     group by Username order by max(timeUsed) desc limit 10 
    ) a 
) 

的正常工作,現在我已經叫另一個表B, 上表我只有3列:

用戶名,PNAME和反饋

,每個用戶名多次有,我想加入到我的第一個查詢每個用戶名,我從第一個查詢得到的計數。

爲eaxmple:

SELECT COUNT(UserName) FROM b where UserName='Admin' group by UserName 

如何加入從第二查詢到的第一個結果?

表:

log_table:
ID - 詮釋,AI,PK
用戶名 - VARCHAR
行動 - 詮釋
TIMEUSED - 日期時間
角色 - varchat

一個:
用戶名 - varchar,PK
名稱 - varchar
anni versaryDate - 日期時間
RegionCode - 詮釋

B:
用戶名 - VARCHAR
PNAME - VARCHAR
反饋 - VARCHAR

+1

你應該真的使用連接而不是嵌套選擇。請分享您的表格結構,這將幫助我們找出幫助您的方法。 – rekaszeru

+0

事情就是這樣的:我需要得到最後10個用戶對我的應用程序(嵌套選擇)進行操作,然後從表a(主要選擇)獲取有關這些用戶的基本信息,然後僅顯示加上他們從表b的計數 – Kadosh

+0

好的,謝謝你清理那個。共享你的表格結構將有助於複製情況和提供樣品,但你也可以通過這種方式獲得元回答:) – rekaszeru

回答

0

根據你的表結構下面的查詢可能會增加你正在尋找所需的列for:

select users.UserName, Name, anniversaryDate, RegionCode, 
     Coalesce(count(b.UserName),0) as cnt 
    from users 
     left outer join (select Username, max(timeUsed) 
      from log_table where role='Cou' 
      group by Username order by max(timeUsed) desc limit 10 
     ) a using (UserName) 
     left outer join fedbacks b on (a.UserName = b.userName) 
     group by users.UserName; 
+0

它由於某種原因返回我cnt 0,儘管在表b用表名稱a – Kadosh

+1

role ='Cou'?區分大小寫。 – rekaszeru

+1

現在工作,忘記改變其中的一個值:) – Kadosh

相關問題