gpt4 book ai didi

SQL 设置运算符 - 从具有不同列的表中选择行

转载 作者:行者123 更新时间:2023-12-02 08:19:23 25 4
gpt4 key购买 nike

我正在使用 Oracle 10g,并且我尝试使用集合运算符从一个表中选择未出现在另一表中的查询中的行。

我正在尝试从 employee 表中选择 idlast_namefirst_name 列,其中这些列行不会出现在 job_history 表中。

这两个表中唯一的公共(public)列是 id 列。但我也想显示名称。

我已经尝试过:

SELECT 
id, last_name, first_name
FROM
employees

MINUS

SELECT
id, TO_CHAR(null), TO_CHAR(null)
FROM
job_history;

这不会产生预期的结果。

但是,如果我不想显示员工表中的姓名,我可以使用:

SELECT id FROM employees
MINUS
SELECT id FROM job_history;

这给了我一半的结果,除了我想要员工表中的姓名。

有什么建议吗?

最佳答案

为什么你不能像这样使用NOT IN

SELECT id, last_name, first_name FROM employees
WHERE ID NOT IN (SELECT id FROM job_history);

您也可以尝试LEFT JOIN,例如

SELECT e.id, e.last_name, e.first_name 
FROM employees e LEFT JOIN job_history jh
ON e.ID = jh.ID
WHERE jh.some_other_column IS NULL;

关于SQL 设置运算符 - 从具有不同列的表中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38707367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com