【发布时间】:2015-02-12 20:44:07
【问题描述】:
所以我有一个围绕驾驶学校构建的场景,在这所驾驶学校内有工作人员,他们扮演不同的角色。我正在尝试找到一种方法来检查未来几天或一周内特定员工的日程安排。在谷歌搜索 BETWEEN 和 JOIN 的不同变体一个小时后,我找不到一个可以让我获得“时间表”的版本。
这是我第一次尝试用我的 AND 和 OR 做得过火:
SELECT staff.staff_id, lname, interviewstart, lessondate, lessontime, prac_date, prac_time
FROM staff, interviews, lessons, practicaltests
WHERE staff.staff_id = 6 AND lessondate OR practicaldate OR interviewstart BETWEEN curdate() AND '2014-12-21'
GROUP BY staff_id
课程日期和实际日期都是 DATE 格式,并且 interviewstart 是 DATETIME(我知道这并没有太大的区别,但你知道。) 这返回了我见过的最混乱的桌子,而且绝对没有得到正确的信息。 我期待的结果是这样的:
staff_id lesson date practical date interviewstart
6 2014-12-18
6 2014-12-19
6 2014-12-15 13:00:00
如果有任何意义,它只是一个基本列表。
请有人在这里尝试帮助我,我通常很擅长寻找解决问题的方法,但我的 MYSQL 还达不到标准! (如果代码显示不正确也很抱歉,我尽力了!)
【问题讨论】:
-
很好的解释,但所有表格都有一些示例数据可以使问题在理解和发现问题方面变得更好。
-
感谢您的快速反馈,我正在寻找的基本结果是一种显示一个工作人员范围内的所有日期/日期时间的方法(每个表中的外键)。
-
请在每张表内贴一些相关数据。如果您想要一个出色的国王解决方案,如果您提供每个表中的数据,它将变得更容易/可能
-
您的表之间缺少连接,因此我怀疑您是否会轻易解决此问题。简单规则:从不在
from子句中使用逗号。 -
感谢大家的反馈,我正在根据 E. Uta 下面的回答制定更新的解决方案,我应该提出一个新问题还是更新这篇文章? (这里是新人,所以想尽可能地遵守礼仪。)
标签: mysql database date join between