2012-12-20 45 views
1

我有這樣mysql如何從1行到其他行從同一個表合併/加盟/完整的信息

ID | starttime | endtime |manualid 
1 | 12:24:00 | 13:25:00 |null 
2 | null  | null  |1 
3 | null  | null  |5 
4 | 16:34:00 | 19:25:00 |null 
5 | 21:40:00 | 23:25:00 |null 

表我想要的是,當我做一個SELECT有這樣的事情

ID | starttime | endtime |searchid 
1 | 12:24:00 | 13:25:00 |null 
2 | 12:24:00 | 13:25:00 |1 
3 | 21:40:00 | 23:25:00 |5 
4 | 16:34:00 | 19:25:00 |null 
5 | 21:40:00 | 23:25:00 |null 

的想法是用自己的身份證

回答

0

在這裏,我想加入your_table以完成某些行與其他行相同的表中的信息的信息,其精靈,在manualid = id。如果加入不成功(因爲manualid is null,或者它有一個不存在的ID)t2.id將爲空。

我選擇從原來的行starttimeendtime如果連接不成功,否則我是從其他行選擇它:

SELECT 
    t1.ID, 
    case when t2.id is null then t1.starttime else t2.starttime end as starttime, 
    case when t2.id is null then t1.endtime else t2.endtime end as endtime, 
    t1.manualid 
FROM 
    your_table t1 left join your_table t2 on t1.manualid=t2.id 
相關問題