如何检索数据库中未使用职位的结果。这是一个例子:
TABLE POSITION
PosID PosName
101 President
102 Vice President
103 Secretary
104 Treasurer
105 Auditor
106 Srgt of Arms
TABLE OFFICER
OfficerID OrganizationID Name PosID (FK to TABLE POSITION)
1001 2016-02081-0 Kris 101
1002 2016-02081-0 Nitche 102
1003 2016-02081-0 Russel 103
现在我希望我的查询从 TABLE POSITION 中检索职位,其中该职位未被某个组织使用。这就是我所做的,它返回了太多结果:
SELECT *
FROM POSITION, OFFICER
WHERE OrganizationID = '2016-02081-0' AND OFFICER.PosID != POSITION.PosID;
请注意,我只想检索以下结果
TABLE POSITION
PosID PosName
104 Treasurer
105 Auditor
106 Srgt of Arms
它应该检索未被“2016-02081-0”的 organizationID 使用的位置
最佳答案
您可以使用 not in
运算符:
SELECT PosID
FROM position
WHERE PosID NOT IN (SELECT PosID
FROM officer)
或者不存在
运算符:
SELECT PosID
FROM position p
WHERE NOT EXISTS (SELECT *
FROM officer o
WHERE p.PosId = o.PosId)
关于mysql - 数据库 - 检索未使用位置的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35680088/