【问题标题】:sql update and joinsql更新和加入
【发布时间】:2013-10-03 19:31:25
【问题描述】:

我有一个表(在 phpmyadmin 中)要更新。

表称为categories,有ID,Name & sid字段

我想用名为词汇表的值更新名称列。

词汇包含 sid、langid 和 value

我已经制定了如下的select join语句:

Select categories.ID, vocabulary.value
FROM categories
Inner join vocabulary
on categories.sid = vocabulary.sid
where langid = 1;

但是,正如我所说,我想用词汇表中的对应值更新类别中的名称字段。

所以我尝试了一些查询,但似乎都没有工作

Update categories
set cateogires.Name = vocabulary.value
Inner join vocabulary
on categories.sid = vocabulary.sid
where langid = 1;

有什么想法吗?

【问题讨论】:

    标签: mysql sql join sql-update


    【解决方案1】:

    INNER JOINMySQLUPDATE 子句的一部分(你提到了phpmyadmin)。

    UPDATE  Categories a
            INNER JOIN Vocabulary b
                ON a.sid = b.sid
    SET     a.Name = b.value
    WHERE   b.langID = 1
    

    【讨论】:

    • 感谢您的快速回复。有没有其他方法可以实现这一点,因为它需要永远并使我的数据库挂起。它工作但非常缓慢,而我的第一个 select 语句在几秒钟内完成。再次感谢您的帮助
    • Vocabulary.sid 的值,始终引用Categories.sid,如果是这种情况,请执行以下语句ALTER TABLE VOCABULARY ADD CONSTRAINT voc_fk FOREIGN KEY (sid) REFERENCES Categories(sid)。确保Categories.sid 是主键或列上定义了索引。
    • @user2231688 如果上面不正确,执行下面的ALTER TABLE Categories ADD INDEX (sid),ALTER TABLE Vocabularies ADD INDEX (sid)
    猜你喜欢
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多