【问题标题】:T-SQL: test condition if match other table, otherwise include without testT-SQL:测试条件是否匹配其他表,否则包含不测试
【发布时间】:2016-05-19 06:58:58
【问题描述】:

这是我正在尝试做的,但我不能完全正确地理解语法:

SELECT 
    myKey1, myDate1
FROM 
    myTable1, 
    (SELECT myKey2, myDate2 FROM myTable2) as myDatesQuery
WHERE
    -- myTable1.myKey1 = myDatesQuery.myKey2 AND myTable1. myDate1 < myDatesQuery. myDate2
    -- OR myTable1.myKey1 not found in myDatesQuery

因此,如果 myDatesQuery 中不存在 myKey1,则将其包含在内。如果 myKey1 = myKey2 只有在 myDate1 早于 myDate2 时才包含它。

非常感谢

【问题讨论】:

    标签: sql sql-server subquery conditional where-clause


    【解决方案1】:

    试试:

    Select myTable1.myKey1, myTable1.myDate1
        FROM 
    (SELECT myKey2, myDate2 FROM myTable2) as myDatesQuery
    left outer join myTable1 
            on myTable1.myKey1 = myDatesQuery.myKey2
            where myTable1.myKey1 is null or myTable1.myDate1< myDatesQuery.MyDate2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多