2011-12-31 15 views
0

我想加入2只選擇一個:如何加入2個SELECT查詢當查詢之一是統一

SELECT user_email FROM users WHERE user_id = ? 

,另一個選擇是

SELECT f.friends_friend AS user_id, 
     users.username AS friend_name, 
     users.user_avtr AS profile_pic 
FROM friends as f 
LEFT OUTER JOIN(
    SELECT user_id,username,users.user_avtr FROM users 
)AS users 
ON f.friends_friend = users.user_id 
WHERE f.friends_member = ? 
UNION 
SELECT f.friends_member AS user_id, 
     users.username AS friend_name, 
     users.user_avtr AS profile_pic 
FROM friends as f 
LEFT OUTER JOIN(
    SELECT user_id,username,users.user_avtr 
    FROM users 
)AS users 
ON f.friends_member = users.user_id 
WHERE f.friends_friend = ? 

我想運行的2個查詢在一個查詢中

+0

爲什麼你不能只添加users.user_email到第二個查詢中的SELECT語句,因爲你已經加入到users表中了? – 2011-12-31 17:55:37

+0

鑑於你的帖子中有大量的信息,喬納森的問題似乎很合理。他的假設被你對他的回答的評論證明是錯誤的,但是你應該更詳細地闡述你的查詢中發生了什麼,他們是否應該得到與他們的論證相同的價值,以及結果應該是什麼樣子。 – 2011-12-31 23:08:02

回答

0

也許,我誤解了你的問題,但爲什麼你不能這樣做呢?

SELECT f.friends_friend AS user_id, 
     users.username AS friend_name, users.user_email as user_email, 
     users.user_avtr AS profile_pic 
FROM friends as f 
LEFT OUTER JOIN(
    SELECT user_email, user_id,username,users.user_avtr FROM users 
)AS users 
ON f.friends_friend = users.user_id 
WHERE f.friends_member = ? 
UNION 
SELECT f.friends_member AS user_id, 
     users.username AS friend_name, users.user_email as user_email, 
     users.user_avtr AS profile_pic 
FROM friends as f 
LEFT OUTER JOIN(
    SELECT user_email, user_id,username,users.user_avtr 
    FROM users 
)AS users 
ON f.friends_member = users.user_id 
WHERE f.friends_friend = ? 
+0

我不想要「朋友」電子郵件。我想從數據庫中取出我的電子郵件,而且我不想分開查詢,因爲我想將PDO :: fetchAll分配給一個大數組。 – vintox 2011-12-31 18:28:52

+0

然後,只需添加您想要的聯合查詢,添加一些虛擬數據,並確保別名匹配。 – 2012-01-01 07:14:43

+0

@vintox對不起,忘了ping。 – 2012-01-03 16:37:26