우선 다음과 같은 SQL 문이 :결합 여러 복합 MySQL의 문
이SELECT * FROM members
WHERE username IN (
SELECT friend2 as username FROM list_friends
WHERE (friend1 = 'user' AND friend2 <> 'user')
UNION
SELECT friend1 as username FROM list_friends
WHERE (friend2 = 'user' AND friend1 <> 'user')
)
위의 코드는 완벽하게 작동합니다. 지정된 사용자 친구 목록과 일치하는 '구성원'테이블의 모든 행을 반환합니다.이 행은 주어진 사용자에 대해 list_friends 테이블을 검색하고 friend1 또는 friend2 열에서 친구 이름을 가져 와서 만듭니다.
내가 말했듯이, 그것은 완벽하게 작동합니다.
SELECT username,
(SELECT COUNT(*) FROM sites WHERE username = 'user')
+ (SELECT COUNT(*) FROM banners WHERE username = 'user')
+ (SELECT COUNT(*) FROM stream_updates WHERE username = 'user')
AS cnt from members WHERE username = 'user'
이 열 탄소 나노 튜브로 지정된 행과 출력의 모든 COUNT의 총합을 계산을 결합합니다
다음으로 나는 다음과 같은 SQL 문을있다.
저는 친구, cnt를 반환하는 결과를 얻을 수 있도록이 두 문장을 결합하고 싶습니다.
이username | cnt
----------------------
a friend | 6525
diff friend | 983
yet again | 3485
내가 쉽게 첫 번째, 두 PHP는 루프에서이 작업을 실행하는 첫 번째 쿼리에서 친구의 이름을 가져, 다음 foreach 문을 사용할 수 있으며, 두 번째 쿼리를 실행
예 출력은 매우 간단 할 것 첫 번째 쿼리의 루프에서 나는 위의 출력을 얻으려면 구문을 하나로 결합하는 더 좋은 방법이나 방법이 있는지 궁금합니다.
첫 번째 쿼리 또는 모든 행의 개수를 계산 하시겠습니까? –
첫 번째 쿼리는 "친구"를 반환합니다. 그런 다음 두 번째 쿼리에서 친구 "cnt"를 통해 각 친구를 실행시켜야합니다. – Bruce
우리가 주어진 사용자에 대해 "친구 목록"을 얻는 것을 명확히하기 위해, 친구 목록의 각 사용자는 그들이 수행 한 총 "활동"을 세고 있습니다. – Bruce