我有三张桌子
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表进行比较,结果按时间的升序排列。
答案 0 :(得分:0)
这会创建一个单独的表来按需要加入
SELECT combined.* FROM (
SELECT * from EVENT_TYPE1
UNION
SELECT * from EVENT_TYPE2) AS combined
我对'与事件表相比'的含义有点模糊。您可以将此内部选择的结果加到event_id = ref_event_id
上的Event表中,假设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
答案 1 :(得分:0)
您可以这样做:
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