我試圖更新一個表,entities
列,contacts
這是一個來自另一個表的ID數組,contacts
。 Contacts表具有列first_name
和last_name
,我有名字,firstNames
和姓氏,lastNames
數組中傳遞。在WHERE子句中使用兩個數組在相同索引處的UPDATE語句
你將如何使用一個查詢,妥善獲取更新的entities
表contacts
列所有名字爲firstNames[0]
和姓氏lastNames[0]
的聯繫人,以及所有名字爲firstNames[1]
和姓氏lastNames[1]
的聯繫人,以及所有名字爲firstNames[n]
的聯繫人和姓氏lastNames[n]
?
我最初的想法是類似UPDATE entities SET contacts = (SELECT id FROM contacts WHERE first_name = ANY(firstNames) AND last_name = ANY(lastNames)
。
這個棱的問題時,contacts
表是這樣的:
first_name | last_name
----------------------
Bob | Jones
Bob | Miller
David | Miller
如果我想設置contacts
欄的ID爲鮑勃·瓊斯和大衛·米勒,而不是鮑勃·米勒,和我通過在['Bob', 'David']
爲firstNames
和['Jones', 'Miller']
爲lastNames
在上面的查詢中,Bob Miller也會被添加到contacts
列中。