当前位置: 首页 > 知识库问答 >
问题:

如果其他表中没有匹配项,则返回产品[重复]

金钊
2023-03-14

我有两张桌子:

Product\u表

ProductID     Name       Date  
1             ABC        2020-02-14  
2             XYZ        2020-03-05

Productbreak\u表

BreakID   Product_id      Begin         End  
34          1             2020-01-01    2020-01-30  
35          1             2020-02-01    2020-02-20  
36          2             2020-01-15    2020-01-31  
37          2             2020-02-15    2020-03-01

我的目标是只获取Date不在productbreak_table的开始结束日期之间的产品

结果应该是:

ProductID    Name
2            XYZ

共有1个答案

干善
2023-03-14

您将使用不存在:

select p.*
from products p
where not exists (select 1
                  from productbreak pb 
                  where pb.productid = p.productid and
                        p.date between pb.begin and pb.end
                 );
 类似资料:
  • 类别由“筛选器”中的第一个匹配项分配,正如我所需要的。 但如果我向过滤器表添加另一行具有相同的category_id(例如尝试向过滤器添加:('soupcan','containers'),结果将不是第一个匹配(或最后一个匹配)。 “mushroom soup in a plate”必须转到“d餐会”,因为它匹配第一个过滤器行“soup”。 但如果我向过滤器添加'soupcan','contain

  • 问题内容: 因此,对于Java中的正则表达式,我想编写一个正则表达式,当且仅当模式前面没有某些字符时才匹配。例如: 如果bar不以foo开头,我想匹配。因此输出为: 我知道这可能是一个非常简单的问题。我正在尝试学习正则表达式,但与此同时我现在需要一些工作。 问题答案: 你想这样使用: 此处的()意思是“仅在此点之前没有“ x”。 有关更多信息,请参见正则表达式-环顾四周。 编辑:添加来捕获之前的字

  • 当我控制台下面的两个数组是如何看 在两个数组中,349都是匹配的,匹配后应返回1。下面是我如何尝试的 它不匹配任何人都能给出解决方案!!!!

  • 我有这个方法,我首先检查一个用户是否是admin,如果你是admin,你将从数据库中得到一个用户列表。但是VS告诉我,我必须在IF admin括号之外再加上一个返回,我完全失去了我应该返回什么?因为你不是管理员,所以你不能返回任何东西

  • 如果在电子表格1中找到匹配项,我想从电子表格2中删除任何行数据。在下图(电子表格1)中,我们SKUA10114 在下图(电子表格2)中,您可以看到位于J05A1位置的SKU A10114有2行条目。 因此,代码将仅删除位置J05A1的A10114的两行 如果A10114有不同的位置,它不会被删除

  • 问题内容: 在PostgreSQL中,我想根据某些条件选择一行,但是如果没有行与该条件匹配,则我想返回第一行。该表实际上包含一个序数列,因此该任务应该更容易(第一行是序数为0的那一行)。例如: 但是在这种情况下,无法保证匹配记录的顺序,因此我无法对其进行排序。使用单个语句执行此操作的方式是什么? 问题答案: 我想根据某些条件选择一行,但是如果没有行与该条件匹配,我想返回第一行 较短(正确) 你实际