【发布时间】:2011-03-03 20:46:27
【问题描述】:
伙计们,我遇到了一个问题,希望有人可以帮助我。我有个约会。例如 2009 年 10 月 1 日。该日期用于检查我在哪个季节工作。这可能是夏天或冬天。
如果在夏天,用于我的内部连接的表应该是“summer09_rooms”。如果是冬天 'winter09_rooms'。所以我基本上想在我的 INNER JOIN 中做一个 CASE。如何做到这一点。查询如下所示:
SELECT name, arrival_date, departure_date FROM holliday a
INNER JOIN
(
CASE when arrival_date BETWEEN 2009-10-1 AND 2009-4-1 THEN summer09_rooms b
ELSE winter09_rooms b END
)
ON a.dossier=b.dossier
当然,这个查询不起作用,但现在我希望你能看到我想要完成的任务。
亲切的问候,
数字人类
【问题讨论】:
-
两个表中是否都存在日期?
-
是否有另一种方法来确定具有存储过程或函数的表“前缀”?为了更加动态地实现这一点?我在考虑 MySQL 中的 PREPARE stmt FROM 函数。
-
可以同时引用 holliday 的一个档案吗?summer09_rooms 和 winter09_rooms
-
是的,它可以。此外,“夏季”和“冬季”之后的 2 位数年份可能不同。冬天可以有 2 年(因为冬天是从 12 月到 3 月),所以冬天会是 'winter0910' 例如
标签: mysql join inner-join