2012-04-03 77 views
0

此查詢不返回預期的結果:查詢不會返回預期的結果

select users.username,firstname,lastname,nickname,address,mobile,email,gender 
from users 
where 
    username = (select userid from friends where friendid = 'ahmedhosni84') OR 
    (select friendid from friends where userid = 'ahmedhosni84'); 

我希望得到所有關於朋友的信息到指定的用戶名和走出只有第一個子查詢和我想出來的兩個子查詢

回答

2

你不能這樣做查詢,如(並獲得期望的結果)

username = 'X' or 'Y' 

你要麼必須做

username = 'X' OR username = 'Y' 

或者

username IN ('X', 'Y') 
+0

你的確可以做這樣的查詢 - 他們可能不會返回所需的結果。 – 2012-04-03 14:33:39

+0

好,編輯。 :) – MichaelRushton 2012-04-03 14:38:40

+0

我有這個錯誤,當我用你的答案**子查詢返回多於1行** 這意味着如果用戶有更多的一個朋友,我會有錯誤,我用你告訴我的兩種風格,仍然有這個錯誤不適用於所有用戶當然 – 2012-04-03 15:11:30

0

我認爲你正在尋找的語法是:

select users.username,firstname,lastname,nickname,address,mobile,email,gender 
from users 
where 
username IN (select userid from friends where friendid = 'ahmedhosni84') 
or 
username IN (select friendid from friends where userid = 'ahmedhosni84'); 

編輯:用 「IN」,因爲這些返回不止一個結果。

+0

我有這個錯誤,當我用你的答案**子查詢返回多於1行** – 2012-04-03 15:05:44

+0

@ Never-BackDown對不起,已編輯。 – Jim 2012-04-03 15:13:31

+0

哦,非常感謝,我正在測試,但我很高興知道你們。 – 2012-04-03 15:19:32