我正在开发一个训练跟踪程序,但我无法弄清楚 SQL 查询。
我有3张桌子:employees, trainingRecords, masterList
.
employees
and trainingRecords
是通过相关的empID
fkey.
trainingRecords
and masterList
是通过相关的TID
fkey.
现在培训记录表是空白的,因为没有输入任何内容(所有员工都没有接受过培训)。
我想用 masterList 中未说明的所有项目填充列表框trainingRecords
table.
自从trainingRecords
表是空白的,它应该返回lName, fName
来自employees
表和docName, docNumber
对于主列表中的所有条目。
我很困惑。有什么建议么?
我假设您想要多次显示所有员工以及他们尚未完成的培训文档。
SELECT a.lName, a.fName, b.docNumber, b.docName
FROM
(SELECT e.lName, e.fName, t.TID
FROM employees e
LEFT JOIN trainingRecords t ON e.empID = t.empID
) AS a,
(SELECT m.docNumber, m.docName, t.TID
FROM masterList m
LEFT JOIN trainingRecords t ON m.TID = t.TID
) AS b
WHERE a.TID IS NULL OR b.TID IS NULL
ORDER BY a.lName, b.docNumber
结果示例:
lName fName docNumber docName
Simpson Homer 1 Nuclear Physics for Dummies
Simpson Homer 2 Nuclear Physics for Beginners
Simpson Homer 3 Advanced Nuclear Physics
Simpson Lisa 3 Advanced Nuclear Physics
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)