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

这个想法是用他们的id来完成一些行的信息,来自同一个表的其他行的信息

4

1 回答 1

0

在这里,我正在尝试将 your_table 与自身连接,在manualid = id. 如果连接不成功(因为manualid is null,或者它的 id 不存在)t2.id将为空。

如果连接不成功,我将从原始行中选择starttime和,否则我从另一行中选择它:endtime

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
于 2012-12-20T22:28:16.863 回答