我試圖插入到表中,同時避免了輔助查詢來查找包含在另一個表中的產品的ID。使用連接插入到表中以解析單個元素
我插入查詢:
INSERT INTO prod_addfeatures (ProductID, ProdFeature, ProdFeatureTitle) VALUES (?, ?, ?);
產品ID是Long Integer
,其他兩個是簡單的字符串。
在程序中的這一點上,我只有ProductID(sku,例如:TB100)的字符串表示形式。
爲了得到SKU的數字ID,我會做這樣的事情:
SELECT products.catalogid FROM products WHERE id = ?;
(id
不是PK,而是catalogid
是......這是一個供應商表,不能更改)。
我試圖避免在運行INSERT之前進行SELECT操作,以避免額外的網絡往返(遠程數據庫),但是我真的只能挖掘選擇到表中的示例,並不完全我在追求什麼。
爲了清楚:
被插入必須在運行時提供的三個值中的兩個,並且在任何其他表中不存在。由於它位於另一個表中,因此必須在運行時查找其中的三個值。
ProductID <-- Must be selected or joined from the products table
ProdFeature <-- Supplied at runtime
ProdFeatureTitle <-- Supplied at runtime
所以我「試圖讓這樣的:
INSERT INTO prod_addfeatures (ProductID, ProdFeature, ProdFeatureTitle)
VALUES ((SELECT products.catalogid FROM products WHERE products.id = ?), ?, ?);
但我不相信這是去了解這個正確的方法
這並不完全清楚您可以使用什麼值來從產品表中獲取ProductID。 –
@TabAlleman我有'products.id',比如說「TB100」。所需的值是「products.catalogid」,即「123456」。 – SnakeDoc