0
두 개의 동일한 sql 쿼리가 있는데 결과를 병합하고 싶습니다.두 개의 동일한 선택 쿼리 병합
SELECT USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO
FROM FRIENDLIST, USER, USER_PROFILE
WHERE FRIENDLIST.FRIEND_ID=". $userID ."
AND APPROVED='YES'
AND USER.USER_ID=FRIENDLIST.USER_ID
AND USER.USER_ID=USER_PROFILE.USER_ID
내가 노동 조합과 시도하지만 난 빈 결과가 아닌, 예를 들어 $ 사용자 ID = 2 2 개 행을 얻을 :
SELECT USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO
FROM FRIENDLIST, USER, USER_PROFILE
WHERE FRIENDLIST.USER_ID=". $userID ."
AND APPROVED='YES'
AND USER.USER_ID=FRIENDLIST.USER_ID
AND USER.USER_ID=USER_PROFILE.USER_ID
두 번째는 다음과 같습니다 첫 번째입니다.
SELECT USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO
FROM FRIENDLIST, USER, USER_PROFILE
WHERE FRIENDLIST.USER_ID=". $userID ."
AND APPROVED='YES'
AND USER.USER_ID=FRIENDLIST.USER_ID
AND USER.USER_ID=USER_PROFILE.USER_ID
UNION
SELECT USER.USER_ID, NAME, SURNAME, EMAIL, STATUS, PHOTO
FROM FRIENDLIST, USER, USER_PROFILE
WHERE FRIENDLIST.FRIEND_ID=". $userID ."
AND APPROVED='YES'
AND USER.USER_ID=FRIENDLIST.USER_ID
AND USER.USER_ID=USER_PROFILE.USER_ID
어떤 아이디어 ??
분명히 말하면 각각의 개별 쿼리는 $ userID = 2 (즉 2 행을 산출)에서 작동하지만 UNION은 빈 결과 집합을 제공한다고 말하는 것입니까? – fenway
그들 각각은 1 행을 반환합니다. 노동 조합과 함께 2를 기대하지만 0이됩니다. – Kostis
최소한 UNION ALL이 필요합니다. 그렇지 않으면 복제본이 제거되어 조작이 무의미 해집니다. – BellevueBob