我有两个SQL表。每个都有一个ID与其他列和日期。
有没有办法可以在一个按日期排序的查询中从这两个表中获取结果?例如,结果,我可能有一个来自表1的记录,后面是表2中的两个记录,然后是表1中的另一个记录,依此类推。我已经尝试了下面的代码,但我认为我没有走上正确的道路。
感谢您的帮助。
rezultat
谢谢你们。
答案 0 :(得分:1)
您要使用的是UNION
运算符,尽管每个表的列列表(或至少是您选择的列)必须匹配。您需要确保在UNION
之后进行排序。
简化示例:
SELECT
col1,
col2,
some_date
FROM
(
SELECT
col1,
col2,
some_date
FROM
Table1
UNION ALL
SELECT
col1,
col2,
some_date
FROM
Table2
)
ORDER BY
some_date
答案 1 :(得分:1)
看看union all
。您需要确保结果列的数据类型相同。
select a.id "id", null "message", a.cityname "city", a.countryname "country", a.street "street", a.datecreated "dt"
from dbo.appraisal a
union all
select s.id, s.message, null, null, null, s.datecreated
from dbo.sub_appraisal s
order by 6
但是,我怀疑您的sub_appraisal
表缺少将其链接到appraisal
表的ID。理想情况下,您可以按照正确的顺序连接两个表,以便准确地获取数据,因为您不能保证在sub_appraisal
记录之后和另一个{{1}之前直接创建appraisal
个记录记录已创建。如果发生这种情况,您的查询将为您提供您可能不期望的结果。