我想這個SQL查詢,但它拋出語法錯誤:如何使用IN運算符來連接表?
select * from table join table1 on (table.int_col in table1.int_array_col)
結束語table1.int_array_col
與parenthesises不起作用。它拋出operator does not exist: integer = integer[]
錯誤此查詢:
select * from table join table1 on (table.int_col in (table1.int_array_col))
,我發現的唯一的解決辦法是任何與更換:
select * from table join table1 on (table.int_col = any (table1.int_array_col))
然而, AFAIK IN運營商的表現遠勝於任何運營商。有沒有辦法在JOIN子句中使用IN運算符?如果不可能,這個問題背後的原因是什麼?
什麼是使用'IN'加入的理由? –
@ m.edmondson int_array_col是一個整數數組,包含來自int_col列的值。 – Mehmet
@Mehmet所以問題是你爲什麼使用整數數組,而不是正確的規範化和聯結(關聯)表... –