使用SQL Server来自2个不同表的TOP 1记录

时间:2018-09-05 19:15:46

标签: sql sql-server

我有两个表,我们称它们为[Table1][Table2]

我需要从两个表中获取TOP 1记录

where [ChargeDate] > dateadd(hh, -1, getdate())

问题是[Table1]中没有记录时,我正在使用CROSS JOIN。

结果是查询未返回任何记录。关于我可以写哪些查询的任何建议,即使两个表之一中没有数据,该查询也将返回记录?

2 个答案:

答案 0 :(得分:2)

如果我了解问题所在,那么我相信您正在寻找FULL OUTER JOIN

  

包括所有联接表中的所有行,无论它们是否匹配   或不。例如,标题和发布者之间的完全外部联接   显示所有标题和所有发布者,即使那些不匹配的内容   另一个表。

答案 1 :(得分:1)

好吧,您的描述听起来像union all。您的描述非常模糊,但是类似这样:

select top (1) t.*
from ((select . . .
       from t1
      ) union all
      (select . ..
       from t2
      )
     ) t
order by chargedate desc