Php 更新不使用外键上的内部联接
我正在开发一个工具,在网站上更新产品价格。我目前遇到一个查询,该查询必须更新与另一个表中的主键链接的产品的特殊价格:Php 更新不使用外键上的内部联接,php,mysql,sql,Php,Mysql,Sql,我正在开发一个工具,在网站上更新产品价格。我目前遇到一个查询,该查询必须更新与另一个表中的主键链接的产品的特殊价格: TABLE product_special product_id is the FK here product_id | customer_group_id | price -------------------------------------- 15468 | 1 | 5,49 15468 | 2
TABLE product_special
product_id is the FK here
product_id | customer_group_id | price
--------------------------------------
15468 | 1 | 5,49
15468 | 2 | 3,60
15468 | 6 | 2,34
----------------------------------------
TABLE product
product_id is PK here
product_id | sku | price
--------------------------------------
15468 | 255 | 5,49
15468 | 500 | 3,60
15468 | 5377 | 2,34
我从Excel表格中获取sku和价格,这是我到目前为止得出的结果,但它没有更新product_special中的价格:
foreach($sku=>$price的价目表){
$stmt=$dbh->prepare(“更新产品”\u特殊
product.product\u id=product\u special.product\u id上的内部联接产品
设定价格=:价格
其中sku=:sku和客户组(id=1;);
$stmt->bindParam(':price',$price);
$stmt->bindParam(':sku',$sku);
如果($stmt->execute()){
$message=“已成功更新客户价格。”;
};
}
我认为这是因为“价格”和“sku”字段在两个表中都不明确。换成
SET product\u special.price=:price,其中product\u special.sku=:sku
你也可以考虑使用别名,这样你就不必每次“/pP>”键入“产品特写”了。我认为这是因为你的字段“价格”和“SKU”都是模糊的,因为它们在两个表中都存在。将其更改为<代码> SETPATTION.Suff.Prase=:Sudio Suff.Sku=:SKU 中的价格,也可以考虑使用别名,这样您就不必每次都键入“CufftTySuffic”了,为什么要加入表呢?在客户群id=1的情况下,你不能只更新特价商品的价格吗?@TommyBs是的,你是对的。我刚把“SET price=:price”改为“SET product\u special.price=:price”,它就开始工作了。谢谢。我已将此更新为一个答案,以便您可以接受,以便其他人可以看到,如果他们有类似的问题,此问题已得到解决problem@forpas没有JOIN它就不能工作。