我有两个表,我们称它们为[Table1]
和[Table2]
。
我需要从两个表中获取TOP 1记录
where [ChargeDate] > dateadd(hh, -1, getdate())
问题是[Table1]
中没有记录时,我正在使用CROSS JOIN。
结果是查询未返回任何记录。关于我可以写哪些查询的任何建议,即使两个表之一中没有数据,该查询也将返回记录?
答案 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