更新一个表2,其中条件相同,另一个表中的条件

时间:2017-11-30 20:31:08

标签: sqlite sql-update

我有2个表费用学生。我想用3个 WHERE 条件更新一个费用字段,即表'费用'中的2个条件和表'学生'中的1个条件。

我尝试了许多查询,例如

UPDATE fees, students SET fees.dues= 300 WHERE fees.month= November 
AND fees.session= 2017-18 AND students.class= Nursery

它给我的错误如java.sql.SQLException: near",": syntax error

我使用sqlite作为数据库。请建议我查询或让我更正此查询。

由于

1 个答案:

答案 0 :(得分:0)

您无法在SQLite中的UPDATE命令中连接表。因此,在where条件

中使用子查询
UPDATE fees
SET dues = 300
WHERE
    month = November AND
    session = 2017-18 AND
    student_id IN (SELECT id FROM students WHERE class=Nursery)

另外,我不确定列的类型。字符串文字必须用单引号(')括起来。表达式2017-18将产生数字2017减18 = 1999.它是否应该是字符串文字?

UPDATE fees
SET dues = 300
WHERE
    month = 'November' AND
    session = '2017-18' AND
    student_id IN (SELECT id FROM students WHERE class='Nursery')