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

具有多个where条件的右外部联接

胡沈义
2023-03-14

从SQL查询返回任何结果时遇到一些问题。我很确定这和WHERE条件有关。

我只想返回某些RULE\u ID。我通过表1中的RULE\u名称来标识RULE\u ID。然后,我将TABLE1和TABLE2连接起来,并说如果RULE\u ID的列日期等于20年3月5日,而COLUMN3列不为null,则返回RULE\u ID。

目前,我没有得到这个查询的任何结果,我也不完全清楚为什么。任何帮助都将不胜感激!

编辑:COLUMN3在TABLE2中,但不在TABLE1中。我没有收到错误,只是当我认为应该得到一些结果时,没有结果显示。如果我删除AND(TABLE2. DATE='05-MAR-20'),我会得到几个结果。不确定这是为什么...

sql_query = """
            SELECT TABLE1.RULE_ID, TABLE2.RULE_ID
            FROM TABLE1
            RIGHT OUTER JOIN TABLE2
            ON (TABLE1.RULE_ID = TABLE2.RULE_ID)
            WHERE (TABLE1.RULE_NAME = 'TEST1' OR TABLE1.RULE_NAME = 'TEST2')  
            AND (TABLE2.DATE = '05-MAR-20')
            AND COLUMN3 IS NOT NULL
            """

共有3个答案

江英卓
2023-03-14

我发现了问题——日期是有时间戳的。在数据库中,日期只是说,DD-MON-YY,但是当我返回日期时,我也有DD-MON-YY,HH: MM: SS.0。现在只需要找到一种方法来摆脱时间戳,只需要日期。

虞正业
2023-03-14

不确定你是否看过这篇文章(或者甚至仍在试图解决这个问题,哈哈),但是:如何从datetime中删除时间

如果我正确理解了上面的帖子,可能会有不同的方式调用日期时间字段的日期部分,具体取决于字段的格式以及您用于与之交互的界面。

李华茂
2023-03-14

使用LEFT JOIN。更容易遵循逻辑(“保留第一个表中的所有行”。然后将适当的过滤移动到ON子句):

SELECT TABLE1.RULE_ID, TABLE2.RULE_ID
FROM TABLE2 LEFT JOIN
     TABLE1
      ON TABLE1.RULE_ID = TABLE2.RULE_ID AND
         TABLE1.RULE_NAME IN ('TEST1', 'TEST2')   
WHERE TABLE2.DATE = DATE '2020-03-05' AND TABLE2.COLUMN3 IS NOT NULL
 类似资料:
  • 我尝试在数据帧“df_energy”中添加一个新的列“energy_class”,如果“consumpion_energy”值为 有什么办法可以帮我吗? 先谢谢你

  • 我需要一个灵活的过滤器来过滤所有代码中的多个EventListener。我可以使用@EventListener(condition=“event.enabled”),但我的过滤器需要分析fooEvent的许多属性。 我希望我可以使用应用程序上下文中的谓词Bean: 但我得到: 是否可以为EventListerns使用外部复杂条件?或者至少定义具有复杂条件的全局侦听器,并在不重复完整条件的情况下继承

  • 问题内容: 所以我有四个桌子。每个表都有一个与前一个表ID相同的ID。因此,我的点击表中有一个ID和一个广告来源的ID。在广告表中,它有一个广告ID和一个来自其广告系列的ID。所以这是一个例子。 因此,要找出表4中的值从何而来,我需要遍历每个表并检查它们具有哪个ID。基本上,我想知道表1中的哪些值与表4中的值相关联。 表4中的内容是网站的访问者,表1中的内容是互联网广告。我想知道哪些访客来自哪些广

  • 我正在尝试从技能作业表中删除一行 以下是我的疑问 但它抛出以下错误; 致命错误:未捕获的异常'异常'消息'您有一个错误在您的SQL语法;检查手册,对应于您的MySQL服务器版本的正确的语法使用附近'skj内连接作业j上<--plhd--0/<--#############################################################################

  • 问题内容: 考虑以下两个关系: 连接表ATag没有相应的实体类。现在,我想获取所有名为Tag1的Tag的Foo实例,是否可以仅使用Criteria? 子查询可能会有所帮助,但是,我无法为不存在的类ATag.class创建DetachedCriteria。 问题答案: 只是处理这个确切的问题。您在表中而不是对象中思考。只是参考,让Hibernate负责其余的工作: 如果您看到SQL Hibernat

  • 我有这样的疑问: 这给了我一个错误 ORA-00904"table2.c_id"无效标识符 问题是,查询与完全外部连接和内部连接一起工作-没有错误。就连这一条也行: 错误仅发生在右或左外部联接上,并且仅发生在测试db上。 两个表都在分区。 生产数据库,其中查询运行完美-Oracle Database 11g Enterprise Edition 11.2.0.3.0版-64位生产 测试数据库,其中