sql - 从多个表中获取记录的问题
问题描述
我有下表,我正在尝试获取异常结果中显示的输出
床
+----+------+--------------+
| id | name | bedfrid |
+----+------+--------------+
| 1 | bed1 | 111111111111 |
+----+------+--------------+
| 2 | bed2 | 222222222222 |
+----+------+--------------+
| 3 | bed9 | 777777777777 |
+----+------+--------------+
部门病床
+----+------+-------+
| deptid | bedfrid |
+----+------+-------+
| 1A | 111111111111|
+----+------+-------+
| 1A | 222222222222|
+----+------+-------+
| 5B | 333333333333|
+----+------+-------+
地点
+----+------------+----------------------------+
| deptid | start time | end time | bedfrid |
+----+------------+----------------------------+
| 1A | 0950 | NULL | 222222222222 |
+----+------------+----------------------------+
| 5B | NULL | NULL | 333333333333 |
+----+------+----------------------------------+
| 1A | NULL | NULL | 111111111111 |
+----+------------+----------------------------+
预期结果
+----+------------+----------------------------+
| 1A | bed2 | 222222222222 |
+----+------------+----------------------------+
查询是:
select bed.name, bed.id
from BED bed inner join
DepartmentBeds dptBEDS
on dptBEDS.bedfrid = bed.id inner join
Location loc
ON loc.bedfrid = dptBEDS.bedfrid
where dptBEDS.id = '1A' AND loc.starttime IS NOT NULL AND loc.endtime IS NULL
我是 SQL 新手。写了上面的查询,但我没有得到预期的结果。我哪里错了。
解决方案
我希望这会有所帮助:
select loc.deptid, bed.name, loc.bedfrid
from (Location as loc inner join DepartmentBeds as dp
on loc.bedfrid = dp.bedfrid) inner join bed
on bed.bedfrid = dp.bedfrid
where loc.deptid = dp.deptid AND loc.starttime IS NOT NULL AND loc.endtime IS NULL
推荐阅读
- php - PHP Juggling 从文件中读取和比较哈希值
- r - R Shiny - 文件上传始终为 NULL
- visual-studio-code - VSCode API registerTextDocumentContentProvider 用于二进制文件
- eclipse - web.xml 丢失并且
设置为 true - web.xml 存在且无法编辑部署程序集 - sql - 如何在多表继承(table-per-type继承)上使用标识PK列
- .net - 将动态 DbContext 依赖注入到服务中
- ssl - SSL 慢。建立安全连接耗时过长
- jquery - 无法使用 Ajax 将数据插入数据库 - ASP.NET MVC
- java - 如何在 Java 中延迟一张图像在屏幕上显示?
- jquery - 如何确定 jQuery 中的活动选项卡