根据两个表中的值集使用另一个表的索引更新mysql表

pdsfdshx  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(357)

我不知道该怎么问这个问题——可能在某个地方有答案,但有点乱;)
有两个表对其他位置的对象的标志(标签)进行排序。
表1:中的标志 booka_flags 感兴趣的列是id(int)和title(varchar)
表2:中的标志项 booka_flags_items 感兴趣的列是id(int)和flag(varchar)
我想改变 booka_flags_items.flag 从varchar(可从 booka_flags.title )至id(可从 booka_flags.id )
我写这个查询的“想法”(经过一些研究)如下:

UPDATE
  booka_flags_items
SET
  booka_flags_items.flag = booka_flags.id
FROM
  booka_flags_items
INNER JOIN
  authors
ON
  booka_flags_items.flag = booka_flags.title

但它不起作用。此查询也不起作用:

UPDATE
  booka_flags_items
SET
  booka_flags_items.flag = (
      SELECT booka_flags.id
      FROM booka_flags
      INNER JOIN booka_flags_items
      ON booka_flags_items.flag = booka_flags.title
)

解决这样的问题的正确方法是什么?

polkgigr

polkgigr1#

我猜您想用bookau flags的id列更新bookau flags的id列,其中title匹配flags。根据mysql,您更新的查询看起来不正确
尝试:
在t1.flag=t2.title set t1.id=t2.id上更新booka\u flags\u items t1内部连接booka\u flags t2

相关问题