我想要合并来自两个文件的数据,但我无法表达排序。我想排序第一个文件的CREATED日期和第二个文件的SHARED_DATE(如果它存在且更大)。
file 1 : NODE#
fields: CREATED, CHANGED
file 2 : SHARE_CONTENT
fields: SHARED_DATE , NODE# (foreign key)
select * from NODE as n left join SHARE_CONTENT as s on (s.NODE#=n.NODE#)
ORDER BY [higher of n.CREATED and s.SHARED_DATE]
答案 0 :(得分:1)
按LastDate排序
SELECT n.*,s.*,
(CASE WHEN n.CREATED > s.SHARED_DATE then n.CREATED else s.SHARED_DATE end) as LastDate
FROM node as n LEFT JOIN share_conten as s on (s.NODE#=n.NODE#)
ORDER BY LastDate DESC
答案 1 :(得分:0)
我的SQL技能有点生疏,但似乎你想在一个查询中组合这两个表,在匹配返回的行时显示所有信息?我认为这是一个完全的外部联盟。
以下是SQL joins
的精彩视觉参考答案 2 :(得分:0)
你可以使用ORDER BY MAX(n.CREATED,s.SHARED_DATE);由FULL OUTER JOIN引入的NULLS将被MAX忽略(即任何东西的MAX和NULL就是那个东西)。