我有三张桌子
1>EVENT table columns event_id, time
2>EVENT_TYPE1 table columns ref_event_id
3>EVENT_TYPE2 table columns ref_event_id
现在我要做的是执行一个查询,以便可以在单个查询中将两个表 EVENT_TYPE1 和 EVENT_TYPE2 中的 ref_event_id 与 EVENT 表进行比较,并且结果按时间升序排列。
这将创建一个表以根据需要加入有序的表
SELECT combined.* FROM (
SELECT * from EVENT_TYPE1
UNION
SELECT * from EVENT_TYPE2) AS combined
我对“与事件表相比”的含义有些模糊。event_id = ref_event_id
假设 ref_event_id 是事件表的外键,您可以将此内部选择的结果连接到事件表。
SELECT * FROM (
SELECT * from EVENT_TYPE1
UNION
SELECT * from EVENT_TYPE2) AS combined
JOIN EVENT ON event_id = combined.ref_event_id
ORDER BY combined.time ASC
你可以这样做:
SELECT a.col1, a.col2
FROM EVENT a
LEFT JOIN
(SELECT col1, col2 FROM EVENT_TYPE1
UNION ALL
SELECT col1, col2 FROM EVENT_TYPE2) b ON b.col1 = a.col1 <== Comparison