2012-02-06 73 views
0

我有2個表用戶和products_users。如何修改此查詢以獲取特定列的計數?

我想讓所有的用戶在他們的FBID在一個預先確定的列表......但是,我也想得到他們出現在products_users表中的次數的總數......(這基本上顯示了多少不同產品用戶在我的網站「喜歡」)

最後,我想:

user1, 4
user2, 7
user3, 28
etc.

的問題是如何計數的工作。

我有這個目前:

select users.* 
    , products_users.fbid 
    , products_users.`graph_id` as objects_liked 
    from users 
     inner join products_users 
      on (products_users.`fbid` = users.fbid) 
      and products_users.`fbid` in ('0_fbid','1_fbid') 

其結果如下:

enter image description here

但是,相反,我想每一行是一個獨特的用戶和objects_liked列來代表總數。

有沒有辦法做到這一點?請幫忙!

僅供參考 - 我已經嘗試改變

products_users.`graph_id` as objects_liked 

count(products_users.`graph_id`) as objects_liked 

但只有結果:

enter image description here

請幫幫忙!

回答

2

我覺得這是一個有點混亂,你如何期望得到user1, 4 user2, 7 user3, 28 etc.結果和你被users.*, products_users.fbid, products_users.graph_id選擇。我假設第一個結果是你期望得到的結果。

以下查詢將向您顯示用戶及其在products_users表中顯示的次數(我明白您正在查找的是)。我在猜測users列,因爲你沒有提供它們。

select users.name, count(*) as count_of_rows_in_products_users_table from users 
inner join products_users on (products_users.fbid = users.fbid) 
where products_users.fbid in ('0_fbid', '1_fbid') 
group by users.name 

希望有所幫助。

0

試試這個:

SELECT Distinct UsersID, iResult.iCount 
FROM Users LEFT JOIN 
    (SELECT fbid, COUNT(*) as iCount 
    FROM products_users 
    GROUP BY fbid) as iResult