我試着想一個SQL查詢得到的結果由來自多個記錄多列,該表是一樣的:名單列
key_1 key_2
--------------------
1 2
1 3
1 4
5 6
兩個key_1和key_2是另一個表的主鍵。而結果,我想獲得越來越每次都與鍵鍵「1」,這就是:
key
--------
1
2
3
4
我嘗試以下查詢:
SELECT key_1 as key FROM tbl_keys_link WHERE key_1 IN (1)
UNION
SELEVY key_2 as key FROM tbl_keys_link WHERE key_2 IN (1)
但我使用pgAdmin的的檢查它'解釋'函數,似乎這個查詢的處理時間不是非常優化的。有沒有其他方法來構建查詢以獲得更好的性能?謝謝!
我創建了索引對(key_1,key_2),但是當我嘗試使用您建議的SQL時,它指出這是關於使用對p的錯誤(錯誤消息:「對」是一個索引。)並且我不確定的一件事是,根據WHERE子句中的條件,在外部執行SELECT時,exists子句應該至少包含1條記錄,但在引用上表時,值「1」發生在列key_1中,所以我認爲這個查詢會返回一個空的結果? – alanlo
@alanlo。 。 。 '對'只是我用於表格的名字。你說得對。兩個條款之間的關係應該是邏輯的而不是'和'。 –