sqlite,从另一个表中的列更新列

时间:2018-02-08 16:50:00

标签: sqlite

我目前正在处理根据两个表中的城市字段从table1.state中的数据更新table2.state的查询。换句话说,当table1和table2中的city字段匹配时,使用table2中的状态更新table1。我遇到的问题是,如果没有城市匹配,就会投入随机状态,如爱达荷州或加利福尼亚州。是否有办法指示"如果table1和table2中没有城市匹配,则插入' NA'进入table1"

table1                               table2

city         state                   city         state
tulsa                                tulsa        Oklahoma 
san diego                            san diego    California
exmouth
lyon                              

这是我到目前为止所做的,我似乎无法弄清楚' IF'声明将会或甚至是必要的。

UPDATE table1
           SET state = (SELECT state FROM table2 WHERE table2.city = table1.city)
          WHERE city IN (SELECT city FROM table2 WHERE table2.city = table1.city)

1 个答案:

答案 0 :(得分:0)

WHERE语句中删除UPDATE条件。

WHERE city IN (SELECT city FROM table2 WHERE table2.city = table1.city)

SELECT中的条件会恰当地处理匹配。

SQLFiddle

相关问题