如何通过条件获取不在另一个表中的表行?

问题描述 投票:0回答:1

我想从表2中获取不在第一个表中的typens并满足条件

我有职位空缺

+----+---------------+-------+
| ID | vacancyTypeID | orgId |
+----+---------------+-------+
|  1 |             4 |    25 |
|  2 |             2 |    25 |
|  3 |             3 |    25 |
|  4 |             4 |    24 |
|  5 |             1 |    22 |
+----+---------------+-------+

和组织类型

+------------+----+
| typen      | id |
+------------+----+
| teacher    |  1 |
| teacher 2  |  2 |
| teacher 3  |  3 |
| teracher 4 |  4 |
| teacher 5  |  5 |
+------------+----+

我想要得到

来自表 2 的所有 typen 不在表 2 中,且 orgid = 25

尝试这个时我什么也没得到

SELECT OrganizationTypes.*
FROM OrganizationTypes
LEFT JOIN Vacancys ON (Vacancys.vacancyTypeID=OrganizationTypes.id)
where Vacancys.vacancyTypeID is null Vacancys.orgId = 25;

但我需要

+------------+----+
| typen      | id |
+------------+----+
| teacher    |  1 |
| teacher 5  |  5 |
+------------+----+
sql mysql
1个回答
0
投票

我认为这符合你的要求。 选择 id 不在其他列表中的所有组织:

SELECT * FROM OrganizationTypes
WHERE id NOT IN (
    SELECT vacancyTypeID FROM Vacancys WHERE orgId=25
);
© www.soinside.com 2019 - 2024. All rights reserved.