![](/img/trans.png)
[英]How to write a query that joins same table in sql and compares the column values of one table with same column in another table
[英]Oracle SQL - Using joins to find values in one table, and not another
因为显然每个人都讨厌子选择,我想使用连接来做到这一点。
对于一个令人难以置信的设计示例,请选择两个表,一个包含1-6的数字列表,另一个包含0-8的偶数列表。 然后,我的目标是输出Nums表中的所有奇数。
Table Nums
Number
One
Two
Three
Four
Five
Six
Table Even
Number
Zero
Two
Four
Six
Eight
如果我只想获得Nums中偶数的列表,我会...
select nums.number
FROM nums,
even,
where nums.number = even.number;
但是,我如何使用这些表来获取Nums表中的非平均值列表? 换句话说,就像...
select nums.number
from nums
where nums.number not in (select number from even);
如果使用得当,SubSELECT很好......“有人不喜欢的东西”单独就不足以成为恕我直言。
有几个选项 - 仅举两个例子:
SELECT nums.number FROM nums
LEFT OUTER JOIN even ON even.number = nums.number
WHERE even.number IS NULL
要么
SELECT nums.number FROM nums
MINUS
SELECT even.number FROM even
对于Oracle:
select nums.number
FROM nums,
even
where nums.number = even.number(+)
and even.number is null;
对于ansi SQL:
SELECT nums.number
FROM nums LEFT OUTER JOIN even ON nums.number = even.number
WHERE even.number IS NULL;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.