我不知道该怎么问这个问题——可能在某个地方有答案,但有点乱;)
有两个表对其他位置的对象的标志(标签)进行排序。
表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
)
解决这样的问题的正确方法是什么?
1条答案
按热度按时间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