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

时间:2016-08-01 20:15:48

标签: sql oracle oracle10g set-operations

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

我正在尝试从id表中选择last_namefirst_nameemployee列,其中这些行未出现在job_history表中

这两个表中唯一的常见列是id列。但我也希望显示这些名字。

我试过了:

SELECT 
    id, last_name, first_name 
FROM 
    employees

MINUS

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

这不会产生预期的结果。

但是,如果我不想显示employee表中的名字,我会使用:

SELECT id FROM employees
MINUS
SELECT id FROM job_history;

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

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

为什么不能像{/ 1}那样使用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;

答案 1 :(得分:2)

您可以在选择结果

上使用内部联接
WebDriverWait wait5 = new WebDriverWait(driver, 100);
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
    IWebElement myDynamicElement = wait.Until<IWebElement>(d => d.FindElement(By.Id("someDynamicElement")));