2013-02-17 64 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