【问题标题】:SQL best way to iterate through returned resultsSQL 遍历返回结果的最佳方式
【发布时间】:2017-05-12 16:25:00
【问题描述】:

我正在尝试练习我的 SQL 技能,我有这个架构:

我想出了这个查询:

SELECT vehicle_id 
FROM reservation 
WHERE NOT (pickup_date<='2017-05-20' 
AND end_date>='2017-05-15')

它将返回车辆 ID 行,我希望能够使用这些车辆 ID 并从车辆表中返回车辆名称。如何解决这个问题?我听说过 SQL 连接会用 JOIN 实现这个目标吗?

【问题讨论】:

  • 提示:JOIN 将桌子放在一起。
  • 是的,JOIN 就是你想要的。
  • 还要小心处理日期。如果那是日期时间,那么您的日期不是 2017-05-15;它是 2017-05-15 00:00:00.000... 取决于字段的数据类型。所以 2017-05-15 12:55:55.555 可能会无意中错过。此外,如果处理小数秒,请注意数据类型的精度。在某些情况下,2017-05-15 23.59.59.999 可以解释为与 2017-05-16 00:00:00.000 相同。

标签: mysql sql database relational-database


【解决方案1】:

我不确定您要求什么,但如果您希望一个查询同时返回车辆 ID 和车辆名称,您应该这样做:

SELECT r.vehicle_id, v.vehicle_name
FROM reservation r
LEFT JOIN vehicle v ON r.vehicle_id = v.vehicle_id
WHERE NOT (r.pickup_date<='2017-05-20'
AND r.end_date>='2017-05-15')

这将返回两列:一列车辆 ID,一列车辆名称。

(对不起法语单词'vehicule')

【讨论】:

猜你喜欢
  • 2015-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 2021-03-02
  • 2011-06-04
  • 1970-01-01
相关资源
最近更新 更多