Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DB2如何从两个表中获取多行的not like_Db2 - Fatal编程技术网

DB2如何从两个表中获取多行的not like

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

我是一个DB2DVELOPER初学者

我有一个要求,通过连接两个表来显示排除类条件的结果,从而得到下面的结果。

水果清单

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勇敢地尝试将你的图像编辑成问题,但是,您确实应该进行编辑,并将包括尝试的查询和结果在内的其余数据作为文本而不是图像编辑到问题中。这有助于那些希望将信息剪切并传递到他们的环境中的人复制您的问题。否则,您的问题可能会被关闭。感谢您提供此新更新查询的详细信息。