2012-02-06 2 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 열되고 싶어 총 합계.

이 방법이 있습니까? 도와주세요!

enter image description here

도와주세요 -

참고로 나는 이미에

products_users.`graph_id` as objects_liked 

count(products_users.`graph_id`) as objects_liked 

하지만 결과 만 변경하려고 노력 해요!

답변

2

내가 그것을 조금 당신이 결과로 user1, 4 user2, 7 user3, 28 etc.를 얻을 기대하고 users.*, products_users.fbid, products_users.graph_id에 의해 선택에 대해 혼란이있어 찾을 수 있습니다. 나는 첫 번째 결과가 당신이 얻길 기대하는 것이라고 가정합니다.

다음 쿼리는 사용자 및 제품 _ 사용자 테이블에 표시되는 횟수를 보여줍니다 (사용자가 찾고있는 것으로 이해함). 당신이 그들을 제공하지 않았기 때문에 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 
관련 문제