sql - 连接 3 个表的查询

标签 sql sql-server sql-server-2005

我希望单个查询产生以下结果..

导致表 1 和表 2 中的记录不在表 3 中。

每个表中有超过 10,000 条记录..所以我正在寻找一个高效的记录。在所有表中 Cono 是主键..

详细的表格。

表 1:-

Cono     

th-123
th-124
th-125

表 2:-

Cono     

th-234
th-245
th-256

表 3:-

Cono     

th-124
th-125
th-256

现在我要有以下记录

结果表:-

Cono     

th-123
th-234
th-245

最佳答案

试试这个

WITH Table1 AS
(
    SELECT 'th-123' CONO UNION
    SELECT 'th-124' UNION
    SELECT 'th-125'
)
,
Table2 AS
(
    SELECT 'th-234' CONO UNION
    SELECT 'th-245' UNION
    SELECT 'th-256'
)
,
Table3 AS
(
    SELECT 'th-124' CONO UNION
    SELECT 'th-125' UNION
    SELECT 'th-256'
)

SELECT CONO
FROM Table1 
WHERE NOT EXISTS
(
    SELECT 1
    FROM Table3
    WHERE TABLE1.CONO = TABLE3.CONO
)

UNION ALL

SELECT CONO
FROM Table2
WHERE NOT EXISTS
(
    SELECT 1
    FROM Table3
    WHERE TABLE2.CONO = TABLE3.CONO
)

关于sql - 连接 3 个表的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3308959/

相关文章:

sql-server - TSQL:从一组具有最低正值的列中选择

java - android中正确的sql UNION是什么?

sql - 如何从第一行开始更新表列的行?

sql - 更改sql server中的日期格式

sql-server - 插入时输出插入和表值

sql-server - SQL Server : Migrate Stored Procedures between Databases, 实例

sql-server - 大表的 SQL Server 性能

sql - 在 XMLAGG 中对重复记录使用 distinct

android - ActiveAndroid 中的多参数

c# - SQL CLR 触发器,由于透明代码调用关键代码,如何使程序集可信?