MYSQL INNER JOIN未找到或找到特定条件

时间:2017-09-17 23:08:50

标签: mysql

我目前有2个表,一个包含用户列表,另一个包含设备列表的“结帐”记录列表。我正在尝试构建一个报告,以显示哪些用户当前没有检查过他们的内容,但是我对如何执行此操作感到有点困惑。数据样本如下:

用户表格列:

  • ID
  • 名字

设备列:

  • ID
  • 的DeviceName

签出栏目:

  • ID
  • 设备(参考设备ID)
  • 用户(参考用户ID)
  • CheckedOutDate(YYYY-MM-DD)
  • CheckedInDate(YYYY-MM-DD) - 如果设备仍“检出”,则默认为0000-00-00。

将会有两种情况。一个用户之前从未有过设备检出过的设备,另一个用户已经检查过设备,但此时不再有设备。这就是我被困住的地方!我能够使用下面的内容来完成第一个场景,但是我很难理解如何同时检查这两个场景。

SELECT DISTINCT u.id
FROM user u
LEFT JOIN checkedout o
ON u.id = o.user
WHERE o.id IS NULL

我为WHERE语句尝试了类似的东西,但它返回了仍然有设备签出的用户的值。

WHERE o.id IS NULL OR o.checkedout != '0000-00-00'

欣赏任何想法。

0 个答案:

没有答案