我有一個數據庫有一些來自外部源的數據,還有一些數據來自本地手動輸入。通過多個表進行SQL更新
有一個items
表,主要產品信息。此表包含一個source
列以顯示它是手動輸入還是外部輸入。如果是手動的,則source
列將爲NULL
- 否則,它是外部源中項目的唯一ID。
還有一個images
表,item_id
列與items
表的ID關聯。外部圖像還會將source
設置爲該項目的唯一ID,並且item_id
將暫時設置爲相同的唯一ID。
問題出在這裏:在我進行外部數據刷新之後,我需要更新本地映像表並將images.item_id
設置爲本地表中的項目ID。我做了這樣的查詢:
UPDATE image_table
SET image_table.item_id =
(SELECT id from items WHERE items.source = image_table.source AND items.source IS NOT NULL)
我想到這僅僅更新那些圖像,其中在items
表中的行NOT NULL
- 不過,雖然它的作品如預期的外部信息,還設置本地圖像item_id
爲0.
有沒有更好的方法來做到這一點?
這是它。謝謝! – user101289