DB2如何从两个表中获取多行的not like
我是一个DB2DVELOPER初学者 我有一个要求,通过连接两个表来显示排除类条件的结果,从而得到下面的结果。 水果清单DB2如何从两个表中获取多行的not like,db2,Db2,我是一个DB2DVELOPER初学者 我有一个要求,通过连接两个表来显示排除类条件的结果,从而得到下面的结果。 水果清单 Name Type ---- ---- apple fruit cranberry fruit blueberry fruit neamleaf leaf lemongrass leaf 过滤器: Name Type ---- ---- %berry fruit %grass leaf %r
Name Type
---- ----
apple fruit
cranberry fruit
blueberry fruit
neamleaf leaf
lemongrass leaf
过滤器:
Name Type
---- ----
%berry fruit
%grass leaf
%root vegetable
筛选结果,显示与同类筛选列表不匹配的水果
Name Type
---- ----
apple fruit
neamleaf leaf
你知道怎么做吗?我试过这个:
create table master
(type varchar(10),
name varchar(25));
insert into master
values ('fruit', 'apple'),
('fruit', 'pineapple'),
('fruit', 'cranberry'),
('fruit', 'blueberry'),
('fruit', 'papaya'),
('fruit', 'orange'),
('leaf', 'neamleaf'),
('leaf', 'lemongrass'),
('leaf', 'orangegrass');
create table slave
(type varchar(10),
search varchar(25));
insert into slave
values ('fruit', 'pple'),
('fruit', 'berry'),
('leaf', 'grass');
select m.type, m.name
from master m
where not exists
(select *
from slave s
where s.type = m.type
and m.name like '%' || s.search || '%');
它提供了以下输出:
type name
----- --------
fruit papaya
fruit orange
leaf neamleaf
为什么
您描述的输出让我有点困惑,因为我本来不希望您的查询能够工作。连接对我来说不起作用,可能语法是特定于LUW的,但由于select拼写为slect,我怀疑您的示例是手动键入的,而不是剪切粘贴的。当我用语法尝试你的方法时,我得到了木瓜两行,橘子两行,其他水果各一行。这是因为使用m.type=s.type的联接为每个水果提供了两行,一行用于从属中的每个“水果”行,然后m.name与“%”s.search | |“%”不同,它会过滤掉与结果集中的搜索字段不匹配的行
让我们看看未过滤的结果集:
m.type m.name s.type s.search filtered/output
------ ----------- --------- ----------- ---------------
fruit apple fruit pple xxxx filtered
fruit apple fruit berry output
fruit pineapple fruit pple xxxx filtered
fruit pineapple fruit berry output
fruit cranberry fruit pple output
fruit cranberry fruit berry xxxx filtered
fruit blueberry fruit pple output
fruit blueberry fruit berry xxxx filtered
fruit papaya fruit pple output
fruit papaya fruit berry output
fruit orange fruit pple output
fruit orange fruit berry output
leaf neamleaf leaf grass output
fruit lemongrass leaf grass xxxx filtered
fruit orangegrass leaf grass xxxx filtered
您好,您编辑了问题,但删除了全部数据和全部信息,此时,问题没有任何意义,到达点无法到达。仅供参考-检查:没有显示输出。嗨,我只是将问题更新为图像,你能检查一下吗now@Seeker_StrangeStavr00勇敢地尝试将你的图像编辑成问题,但是,您确实应该进行编辑,并将包括尝试的查询和结果在内的其余数据作为文本而不是图像编辑到问题中。这有助于那些希望将信息剪切并传递到他们的环境中的人复制您的问题。否则,您的问题可能会被关闭。感谢您提供此新更新查询的详细信息。