从两个表插入第三个表?

bzzcjhmw  于 2021-07-27  发布在  Java
关注(0)|答案(2)|浏览(295)

我有三张table-生产商,产品,报价。第一个包含producerid和producername,第二个包含productid和productname,第三个包含producerid和productid。我希望用户输入producername、productname和sql,从其他两个表中选择producerid和productid,并插入到第三个连接表中。我的sql语句应该是什么样子的?
应该是这样的:

sql = `INSERT INTO offers (ProducerID, ProductID) SELECT ProducerID FROM producers WHERE ProducerName="${ProducerName}", SELECT ProductID from products WHERE ProductName="${ProductName}"`

或者我应该在两个select语句之间使用and语句而不是coma语句?或者我的方法应该完全不同?

kx7yvsdv

kx7yvsdv1#

假设producerid和productid只返回1条记录:

INSERT INTO offers (ProducerID, ProductID) VALUES (
(SELECT TOP 1 ProducerID FROM producers WHERE ProducerName="${ProducerName}"), 
(SELECT TOP 1 ProductID from products WHERE ProductName="${ProductName}")
)

还要确保正确参数化producername和productname,因为它来自用户输入,以防止sql注入。

4nkexdtk

4nkexdtk2#

只能从单个选择中插入,因此:

INSERT INTO offers(ProducerID, ProductID)
SELECT ProducerID, ProductID
FROM producers, products
WHERE ProducerID = "${ProducerName}" AND ProductID = "${ProductName}"

相关问题