【发布时间】:2013-06-23 14:58:21
【问题描述】:
我有一个机器表,以及一个表示这些机器跨时间可达性的表。
machines
id name
1 machine1
2 machine2
3 machine3
4 machine4
machines_reachability
machine_id is_reachable time
1 0 (whatever)
2 1 (whatever)
3 0 (whatever)
1 1 (whatever)
2 0 (whatever)
3 0 (whatever)
1 1 (whatever)
2 1 (whatever)
3 1 (whatever)
我正在尝试查找具有NO可达性记录的机器(即 machine4)使用 JOINS。这可以通过其他方式完成,但我需要通过连接来完成,以便更好地理解它。
我尝试了以下
SELECT * FROM machines m LEFT OUTER JOIN machines_reachability mr ON m.id = mr.machine_id
我知道这应该输出整个左表内容(即机器)并且OUTER关键字应该排除基于条件的machines和machines_reachability表之间的结果交集m.id = mr.machine_id。但这并没有像我预期的那样奏效。它显示了所有内容,但不排除不匹配的行。
那么,我如何运行JOIN 查询来实际显示没有加入的行,无论是左表还是右表。
【问题讨论】:
标签: mysql join outer-join