我试图从SQL获得结果:
我有两个选择:
Select columnA from table1;
Select columnA, columnB, columnC from table2;
如果select 1的所有结果与select 2的%columnA%不同,我想返回第二个选择。
实施例: 选择1的结果;
Hot Dog
Hamburger
Fries
选择2的结果;
Shake | Chocolate | 100 cal
Fries | Curly | 200 cal
希望得到结果(在if之后):
Shake | Chocolate | 100 cal
答案 0 :(得分:1)
您希望select2的结果已被过滤,因此请使用where子句:
Select columnA, columnB, columnC
from table2
where columnA not in (select columnA from table1);
如果table1中的columnA可以为null,则必须将where columnA is not null
添加到内部查询或使用相关not exists
查询而不是not in
。
与not exists
:
Select columnA, columnB, columnC
from table2
where not exists (select * from table1 where table1.columnA = table2.columnA);
如果您真的想使用通配符匹配,请更改后一个查询:
Select columnA, columnB, columnC
from table2 t2
where not exists
(
select *
from table1 t1
where t1.columnA like '%' + t2.columnA + '%'
);
答案 1 :(得分:1)
SELECT t2.*
FROM
table2 t2
LEFT JOIN table1 t1
ON t2.ColumnA NOT LIKE '%' + t1.ColumnA + '%'
WHERE
t1.ColumnA IS NULL