我想對newtable的同步商店IDS從maintable這裏的ID:如果「子查詢返回多個1行」考慮NULL
UPDATE newtable t SET t.store_id = (SELECT store_id FROM maintable s
WHERE t.state = s.state AND s.city = t.city AND t.name = s.name)
每當一個子查詢返回多行它的錯誤「子查詢返回多於一行」,但當它返回零行時,子查詢被認爲沒有返回任何內容,因此newtable上的store_id保持爲NULL。這裏沒有新東西,它只是它的工作原理。
我想知道是否有可能讓子查詢輸出相同,當它有沒有匹配,當它有多個匹配的行。
這樣我就可以將store_id只同步到主表上的一個匹配行,並在子查詢中出現多個匹配行時跳過。
如果'SELECT store_id'產生一個值,則將't.store_id'設置爲該值;如果它什麼都不產生,那麼將't.store_id'設置爲NULL;如果它產生多個值,則將't.store_id'設置爲NULL。對? –
@mu太短:我認爲當返回多個值時,他只想丟棄重複的值並將其中一個存儲在'store_id'中,並且當沒有返回值時,他想要存儲默認值。 –
@Sayem:這是我不清楚的,這個問題的最後兩段似乎是在說不同的事情。 –