SELECT u.user_id, SUM(u.mutual)
FROM (SELECT first_user_id AS user_id, mutual
FROM userprofile_usercontact
UNION ALL
SELECT second_user_id AS user_id, mutual
FROM userprofile_usercontact
) AS u
GROUP BY user_id;
주석의 질문은 묻습니다 :
방법 상호 = 0 인 항목을 없애겠습니까? 필터 조건을 사용하여
, 평소와 같이 : 그것은 쿼리가 기록 된 것처럼 실행 할 수 있도록 최적화는 물론, 연합 쿼리에 아래 조건을 밀어 수
SELECT u.user_id, SUM(u.mutual)
FROM (SELECT first_user_id AS user_id, mutual
FROM userprofile_usercontact
UNION ALL
SELECT second_user_id AS user_id, mutual
FROM userprofile_usercontact
) AS u
WHERE u.mutual != 0 -- or u.mutual <> 0
GROUP BY user_id;
:
SELECT u.user_id, SUM(u.mutual)
FROM (SELECT first_user_id AS user_id, mutual
FROM userprofile_usercontact
WHERE mutual != 0
UNION ALL
SELECT second_user_id AS user_id, mutual
FROM userprofile_usercontact
WHERE mutual != 0
) AS u
GROUP BY user_id;
그물 결과는 물론 동일합니다.
감사합니다. 항목을 없애려면 mutual = 0을 어떻게 사용합니까? – David542
하위 선택을 표로 처리하십시오. 'WHERE u.mutual> 0'을 사용하여 원하지 않는 항목을 걸러 낸다. – vyegorov