2014-01-18 35 views
0


內我有兩個id列的表和name列的第一個的id列的參照自己的ID是主密鑰,第二或者是指主鍵或爲空。的MySQL從表

+--+-----+----+ 
|id|subid|name| 
+--+-----+----+ 
|1 |NULL |Tom | 
+--+-----+----+ 
|2 |1 |Will| 
+--+-----+----+ 

一個名字,我想,只使用一個SQL語句來輸出的所有條目與給定的名字,但如果二次id場是指一個主鍵,輸出該條目來代替。

使用上面的例子,如果我輸入「Tom」我想輸出name =「Tom」,如果我輸入「Will」,我想輸出name =「Tom」?

只有一個SQL語句可以實現,因爲我想避免循環遍歷結果。

回答

0

是的。你想使用一個join這個和在select表達式:

select t.* 
from table t left outer join 
    table sub 
    on t.subid = sub.id 
where 'Tom' = t.name or 'Tom' = sub.name; 
+0

這很完美,非常感謝! –