[英]Multiple Insert and Select Statements From Multiple Tables into one Query?
我將這些都作為 Cron 作業 PHP 運行並且它正在運行,但似乎運行緩慢,而且我認為它的效率不高。 有 5 個查詢,其背后的基本思想是在表中查找新的 SKU 並將它們插入到 MasterSKU 表中。
INSERT INTO MasterSKU (SKU)
SELECT DISTINCT SKU
FROM AmazonListings
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE AmazonListings.SKU = MasterSKU.SKU);
INSERT INTO MasterSKU (SKU)
SELECT DISTINCT SKU
FROM ShopifyListings
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE ShopifyListings.SKU = MasterSKU.SKU);
INSERT INTO MasterSKU (SKU)
SELECT DISTINCT SKU
FROM eBayListings_1
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE eBayListings_1.SKU = MasterSKU.SKU);
INSERT INTO MasterSKU (SKU)
SELECT DISTINCT SKU
FROM eBayListings_2
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE eBayListings_2.SKU = MasterSKU.SKU);
INSERT INTO MasterSKU (SKU)
SELECT DISTINCT SKU
FROM eBayListings_3
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE eBayListings_3.SKU = MasterSKU.SKU);
然后我將一一進入 PHP 腳本並使用mysqli_query
來執行每個單獨的查詢。
是否有可能將所有的這些,即使他們都來FROM
不同的表? 或者有沒有更好、更優化的方法來做到這一點?
答案是否定的。
不是,因為如果要從多個互不相關的表中提取數據,則需要使用單獨的查詢。
是的,因為在 sql 中,您可以使用union將多個查詢的結果附加在一起 - 前提是它們具有相同數量的字段。
INSERT INTO MasterSKU (SKU)
(SELECT DISTINCT SKU
FROM AmazonListings
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE AmazonListings.SKU = MasterSKU.SKU))
union
(SELECT DISTINCT SKU
FROM ShopifyListings
WHERE NOT EXISTS (SELECT SKU
FROM MasterSKU
WHERE ShopifyListings.SKU = MasterSKU.SKU)
union ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.