sql - 如何通过删除 MS Access 中的内部查询名称来连接两个查询
问题描述
我有两张桌子。一个表有楼层号(tb_FloorNumber.FloorNumber。记录:例如1到15),另一张表有楼层号和User_Id列(tb_Emp_Master.FloorNumber,tb_Emp_Master.User_Id)。我想从 tb_FloorNumber 中获取所有记录,并且只从 tb_Emp_Master 中获取条件(User_Id =“fat35108”)的记录。
我知道我可以用这样的两个查询来做到这一点: 查询 1:
SELECT DISTINCT tb_Emp_Master.FloorNumber
FROM tb_Emp_Master
WHERE (((tb_Emp_Master.User_Id)="fat35108"));
查询2:
SELECT DISTINCT tb_FloorNumber.FloorNumber, Query1.FloorNumber
FROM tb_FloorNumber LEFT JOIN Query1 ON tb_FloorNumber.FloorNumber = Query1.FloorNumber;
但我想用 sing 查询而不是在 Query 2 中使用 Query1 来编写这个查询
我试过这样:
SELECT DISTINCT tb_FloorNumber.FloorNumber, tb_Emp_Master.FloorNumber
FROM tb_FloorNumber LEFT JOIN tb_Emp_Master ON tb_FloorNumber.FloorNumber = tb_Emp_Master.FloorNumber
WHERE (((tb_Emp_Master.User_Id)="fat35108"));
但它只带来了一条记录(例如 8 条)
请帮我写这个
解决方案
如果设置条件:
tb_Emp_Master.User_Id = "fat35108"
在WHERE
子句中,那么您实际上得到的INNER JOIN
是 a 而不是 aLEFT JOIN
因为您仅从tb_Emp_Master
.
使用tb_Emp_Master
inLEFT JOIN
而不是并在子句Query1
中设置条件:ON
SELECT DISTINCT
tb_FloorNumber.FloorNumber,
tb_Emp_Master.FloorNumber
FROM tb_FloorNumber LEFT JOIN tb_Emp_Master
ON tb_FloorNumber.FloorNumber = tb_Emp_Master.FloorNumber AND tb_Emp_Master.User_Id = "fat35108";
我不知道你为什么需要DISTINCT
,所以我也使用它。
推荐阅读
- regex - htaccess - 重写以特定字符串结尾的 URL 并捕获唯一部分
- angular - 对基于自定义 ReplaySubject 的 observable 的同步阻塞订阅调用
- azure-cognitive-search - 是否可以获得类似和/相同文件的列表?
- javascript - 从 Firestore 保存数据
- ruby-on-rails - 如何删除rails中的部分url?
- wordpress - chrome 不支持我的 wordpress 主题媒体查询断点@media (max-width: 576px)
- sql-server - SQL 子行 - UNION vs JOIN
- r - 使用 R 进行精算练习
- c++ - 删除创建的类对象的属性
- android - 按钮单击不同的活动,具体取决于案例