我有一个包含以下字段的约会表。我写了这样的查询。
SELECT * FROM appointments app WHERE app.patient_id = 123 ORDER BY appointment_start_dt DESC;
+--+----------+--------------------+
|id|patient_id|appointment_start_dt|
+--+----------+--------------------+
|1 |123 |2014-01-18 19:10:00 |
+--+----------+--------------------+
|2 |123 |2014-01-18 12:08:00 |
+--+----------+--------------------+
|3 |123 |2014-01-17 15:00:00 |
+--+----------+--------------------+
|4 |123 |2014-01-15 11:01:00 |
+--+----------+--------------------+
|5 |123 |2014-01-11 12:30:00 |
+--+----------+--------------------+
|6 |123 |2014-01-10 04:00:01 |
+--+----------+--------------------+
表格在当前日期之前有一些约会(假设当前日期时间是2014-01-15 15:00:00),并且在特定患者的当前日期和时间之后有一些约会。 我需要针对一位患者取一条记录,该患者的预约日期是在当前日期时间之后立即到来的,即如果在2014-01-17 15:00:00之后有两次预约,我需要选择预约最早的是2014-01-18 12:08:00。
我真的很感激,如果有人帮我做这个查询 感谢
答案 0 :(得分:5)
试一试
SELECT *
FROM appointments app
where app.patient_id = 123 AND appointment_start_dt > Now()
order by appointment_start_dt ASC LIMIT 1;