2013-02-17 65 views
0

我有這樣的一個表:MySQL的多個where子句使用一個表

user_id, name, second_name 

的樣本數據:

1, "fred", "smith" 
2, "john", "smith" 
3, "karl", "johnson" 

我想找到所有有說「弗雷德」的名人們。然後我想找到所有與「Fred」同名的人。如果可能,我想在一個查詢中做到這一點。查詢simialar這樣:

SELECT * FROM people WHERE name=:first_name OR second_name=:result_from_first_row 

此示例查詢的輸出是:

1, "fred", "smith" 
2, "john", "smith" 
+0

它需要是可選的,其次我不知道'第二個名字'是什麼,直到查詢得到弗雷德。 – Nuvolari 2013-02-17 18:08:19

+0

我誤讀了,對不起。然後我不知道答案,希望有人這樣做。如果有兩個或更多「fred」,你希望得到什麼? – 2013-02-17 18:09:57

回答

1

SELECT * FROM人WHERE SECOND_NAME IN(SELECT SECOND_NAME從不同人的名字=:FIRST_NAME)

+0

這給了我一個錯誤,但這似乎工作: SELECT * FROM people WHERE second_name =(SELECT second_name FROM people WHERE name ='fred') – Nuvolari 2013-02-17 18:29:33

+0

但我不相信這是可選的。 – Nuvolari 2013-02-17 18:30:21

+0

請再試一次,我不小心使用了「IS IN」而不是簡單的「IN」 – 2013-02-17 20:08:54