从另一个单独的表行更新一个表行[重复]
Posted
技术标签:
【中文标题】从另一个单独的表行更新一个表行[重复]【英文标题】:Updating one table row from another separate table row [duplicate] 【发布时间】:2014-03-18 01:48:53 【问题描述】:我正在将名为 allCooks
的表中的 2 行移动到名为 recipeChallenge
的表中的一行(cookAAA 在比萨挑战赛中对抗 cookBBB)
每个匹配都已经有一个 ID,这是我要更新的行
我进行了两次更新,一次是为cookAAA,然后是为cookBBB 用厨师 A 更新 matchID...(我已经将 php 变量留在了)
"UPDATE `recipeChallenge` AS v1,
`allCooks` AS v2
SET v1.`cookAAAID` = v2.`cookID`,
v1.`cookAAAName` = v2.`cookName`
WHERE v1.`matchID`='" .$matchID."'
AND v2.`cookID`= '" .$cookAID."'";
然后是厨师B
"UPDATE `recipeChallenge` AS v1,
`allCooks` AS v2
SET v1.`cookBBBID` = v2.`cookID`,
v1.`cookBBBName` = v2.`cookName`
WHERE v1.`matchID`='" .$matchID."'
AND v2.`cookID`= '" .$cookBID."'";
表 recipeChallenge
正在更新,但第二次更新还创建了一个新的 matchID
和 recipeChallenge
表中的行。为什么?
【问题讨论】:
提供您的表结构。我有一种感觉,这就是“你的全部方法” @Alex,WholeWhole db 结构可能有问题,但可以说我想这样做,解决这个问题的整个方法错了吗? @Alex,@Prix,干杯,我看起来我必须了解什么是 JOIN。 @Prix,你的问题使用了 1 个匹配变量,我的有两个单独的变量需要在 mysql 中单独验证 @Gamemorize 是这样吗?就用2吧,看不出有什么难的,你不是说你会去学习/阅读关于JOIN的吗? 【参考方案1】:你可以这样做:
"UPDATE `recipeChallenge` AS v1,
`allCooks` AS v2 ,
`allCooks` AS v3
SET v1.`cookAAAID` = v2.`cookID`,
v1.`cookAAAName` = v2.`cookName`,
v1.`cookBBBID` = v3.`cookID`,
v1.`cookBBBName` = v3.`cookName`
WHERE v1.`matchID`='" .$matchID."'
AND v2.`cookID`= '" .$cookAID."'
AND v3.`cookID`= '" .$cookBID."'";
【讨论】:
谢谢!您确认我的 mysql 很好(现在更好)!以上是关于从另一个单独的表行更新一个表行[重复]的主要内容,如果未能解决你的问题,请参考以下文章