SQL UPDATE忽略WHERE

时间:2016-01-26 07:44:26

标签: mysql

我需要一些帮助...

我试图更新一个连接到另一个表的表,如下一个表:

             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

我试着写一些关于" descr"列

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

我知道问题出现在" JOIN",因为它没有任何意义。但我试着写#34; FROM"就像我在其他帖子中读到的那样,它会返回语法错误。 在我们创建表时直接连接的两个表,现在sql不允许我们进入" INNER JOIN"它们(当我们使用SELECT时,不需要进行INNER JOIN)。

我不知道如何继续...... 非常感谢!

1 个答案:

答案 0 :(得分:5)

您错过了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]