【问题标题】:sql table UPDATE and Joinsql 表 UPDATE 和 Join
【发布时间】:2015-01-25 17:19:00
【问题描述】:

我有两张表如下 -

Room:
room | room_name | size | index (AI,pk)
  0  |   CR20    |  30  |   1
  1  |   CR30    |  40  |   2

Enroll:
...| room | size | index(AI, pk)
   |  0   |      |    1
   |  1   |      |    2
   |  0   |      |    3
   |  1   |      |    4

我希望更新表 Enroll,其中 Enroll.room 被分配了来自表 Room 的相应 room_name。即 Enroll 中的 field room 中的所有 0 和 1 将更改为 CR20 或 CR30,并分别填写大小值。

什么 MySQL 查询适合这个?任何帮助将不胜感激。

【问题讨论】:

  • 因为你是新来的,你应该先阅读这个:stackoverflow.com/tour - 你需要向我们展示你已经尝试过的东西 - stackoverflow 不是为了让我们为你做事,它是为了帮助你自己做事
  • stackoverflow.com/questions/2114534/… 这个链接应该有帮助。
  • 是的,我是新来的。好的,在这种情况下,我尝试过:更新注册 INNER JOIN 房间 onenroll.room = room.room SET name = room.room_name。但是这个查询显示错误。我想要一些关于我可以使用什么的建议,关于 UPDATE 和 JOIN 的信息很难找到/使用。
  • 为什么要将冗余信息存储在Enroll 中?您可以在需要时使用join 获取它。
  • 这是一个很好的观点。但是我在 php 中使用mysqli_fetch_assoc 来检索 Enroll 表中的所有值,该表还有一些字段。这就是我想换掉它的原因。正如你所说,我会尝试使用join 解决。

标签: mysql sql


【解决方案1】:

你需要 update 来自 join 语法

UPDATE Enroll a
JOIN Room b
   ON a.room = b.room
SET a.size = b.size,
a.name = b.room_name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多