小编典典

SQL查询以``启动''条件从两个表中获取数据

sql

我有2个表,表1和表2,其中两个表中的2列相同

更新:Table1.col1的类型与Table2.col1相同,Table1.col2的类型与Table2.col2相同

试图获取数据,其中table1.col1不在table2.col1中,而table1.col2不在table2.col2中,这是我的查询。

select * from Table1 
    where Table1.col1 not in (select Table2.col1 from Table2)
      and Table1.col2 not in (select Table2.col2 from Table2)

想知道更好的方法还是正确的?


阅读 242

收藏
2021-04-22

共1个答案

小编典典

这个查询应该可以完成工作,我根据您的查询进行了简单的测试,但结果却不理想

SELECT *
FROM Table1 t1
LEFT JOIN Table2 t2
    ON t1.col1 = t2.col1 AND t1.col2 = t2.col2
WHERE t2.col1 IS NULL AND t2.col2 IS NULL

鉴于这种

CREATE TABLE Table1
(
colA    VarChar(50),
col1    Int,
col2    Int
)

CREATE TABLE Table2
(
colB    VarChar(50),
col1    Int,
col2    Int
)

INSERT Table1
VALUES ('A', 1, 1),
        ('B', 1, 2),
        ('C', 2, 1)

INSERT Table2
VALUES ('X', 1, 1),
        ('Y', 2, 1),
        ('Z', 2, 2)

如果我理解您的问题,我们应该给这个 B | 1 | 2个

2021-04-22