問題:兩次連接同一個表後,我得到很多重複的行和很長的查詢。將同一個表連接兩次而不存在重複行
有兩個表:
活動:事項標識,EVENT_TIME,EVENT_NAME TSERIES:data_time,數據
的EVENT_TIME是爲特定事件時,data_time在每分鐘有數據。
我要輸出一個表,其中我將有6列: EVENT_ID,EVENT_TIME,data_time1,DATA1,data_time2,DATA2 其中data_time1/DATA1是用於第2分鐘的情況下(0後,1 ), 和data_time2/data2的下一個2分鐘(3,4)
我的查詢:
SELECT
*
FROM events
LEFT JOIN tseries ts1
ON ts1.data_time >= (events.event_time) AND ts1.data_time <= (events.event_time + time '00:01:00')
LEFT JOIN tseries ts2
ON ts2.data_time >= (events.event_time + time '00:02:00') AND ts2.data_time <= (events.event_time + time '00:03:00')
ORDER BY events.event_id
;
該查詢生成該表(I僅包括時間數據),以及接合後同一張表更多次會更可怕。
event_time data_time1 data_time2
x x+0 x+2
x x+0 x+3
x x+1 x+2
x x+1 x+3
我寧願這樣的事情,而不是:
event_time data_time1 data_time2
x x+0 x+2
x x+1 x+3
或
event_time data_time1 data_time2
x x+0 null
x x+1 null
x null x+2
x null x+3
任何想法?感謝您的幫助/答案:)
你爲什麼加入兩次?難道你只是在將其餘部分放在WHERE子句中時進行一次連接? – SaggingRufus
您可以添加表格的樣本數據嗎? –
「兩次+ WHERE」 - 我不明白你的想法,但我是初學者。沒有爲我工作。感謝小費。 –