2016-02-29 71 views
0

當新數據填充到視圖中時,表不會更新。查詢運行時沒有錯誤,但表格未更新。我試圖用視圖中的數據來更新表格,這些數據不在表格中,這取決於發貨編號。將數據從mysql視圖插入到不存在的表中

INSERT INTO `table`(`store`, `shippingid`) 
SELECT store,shipment_id FROM view WHERE NOT EXISTS (SELECT `shippingid` FROM `table`) 
+0

是用於創建「視圖」的'表'嗎?即使它被隱藏在視圖之後,通常也不能在更改表格的同時從中進行選擇。 –

回答

1

你必須包括的觀點和你的表之間的關係:

INSERT INTO `table`(`store`, `shippingid`) 
SELECT store,shipment_id 
FROM view 
WHERE NOT EXISTS (SELECT `shippingid` 
        FROM `table` 
        WHERE shippingid = view.shipment_id) 

請注意,這個查詢是一個INSERT操作,而不是UPDATE

+0

完美!非常感謝! –

0

如果你在你的表中的任何行,這將永遠是假的:

WHERE NOT EXISTS (SELECT `shippingid` FROM `table`) 

看來你可能需要添加相關性:

WHERE NOT EXISTS (SELECT `shippingid` FROM `table` WHERE shippingid = view.shipment_id) 

請注意,從理論上說,子查詢對外部查詢的每一行執行一次。因此,要了解流程,請查看一些示例數據並瞭解查詢如何產生結果。