我有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')
导致以下结果:
但是,我希望每一行都是唯一用户,而objects_liked列则表示TOTAL计数。
有办法做到这一点吗?请帮忙!
仅供参考 - 我已经尝试过更改
products_users.`graph_id` as objects_liked
到
count(products_users.`graph_id`) as objects_liked
但这只会导致:
请帮忙!
答案 0 :(得分:2)
我觉得有点令人困惑的是,您希望得到user1, 4 user2, 7 user3, 28 etc.
因为users.*, products_users.fbid, products_users.graph_id
选择users
。我假设第一个结果是你期望获得的结果。
以下查询将向您显示用户及其在products_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
列是因为你没有提供它们。
{{1}}
希望有所帮助。
答案 1 :(得分:0)
试试这个:
SELECT Distinct UsersID, iResult.iCount
FROM Users LEFT JOIN
(SELECT fbid, COUNT(*) as iCount
FROM products_users
GROUP BY fbid) as iResult