【问题标题】: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 正在更新,但第二次更新还创建了一个新的 matchIDrecipeChallenge 表中的行。为什么?

【问题讨论】:

  • 提供您的表结构。我有一种感觉,这就是“你的全部方法”
  • @Alex,WholeWhole db 结构可能有问题,但可以说我想这样做,解决这个问题的整个方法错了吗?
  • @Alex,@Prix,干杯,我看起来我必须了解什么是 JOIN。
  • @Prix,你的问题使用了 1 个匹配变量,我的有两个单独的变量需要在 mysql 中单独验证
  • @Gamemorize 是这样吗?就用2吧,看不出有什么难的,你不是说你会去学习/阅读关于JOIN的吗?

标签: mysql sql


【解决方案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 很好(现在更好)!
猜你喜欢
  • 2011-08-06
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-01
  • 1970-01-01
相关资源
最近更新 更多