我需要一点帮助。。。
我正在尝试更新一个与下一个表一样连接到另一个表的表:

             table1
 ID_Website |  descr  |  level

    100                 2
    104                 2
    105                 3

另一张桌子:
     table2

 ID   |       URL

 100     www.google.es
 104     www.youtube.es
 105     stackoverflow.com

我试着在“描述”栏写些东西
UPDATE table1 JOIN table2
SET descr = 'something'
WHERE table1.level = '2'
AND table2.URL = 'www.google.es'

但是,它的作用是:
             table1
 ID_Website |  descr  |  level

    100      something    2
    104      something    2
    105                   3

我知道问题出在“加入”上,因为这毫无意义。但我试着像在其他文章中一样写“FROM”,它返回一个语法错误。
两个表在我们创建表时直接连接,现在sql不允许我们“内部连接”它们(当我们使用SELECT时,不需要进行内部连接)。
我不知道怎么继续。。。
谢谢!

最佳答案

您缺少ON中的JOIN子句:

UPDATE table1
JOIN table2 ON table1.ID_Website = table2.ID
--          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SET descr = 'something'
WHERE table1.level = '2'
AND table2.URL = 'www.google.es'

[SQL Fiddle Demo]

关于mysql - SQL UPDATE忽略WHERE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35008958/

10-10 13:01