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、nullになります。

結合が成功しない場合は元の行から選択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 に答える