2017-11-30 6 views
0

私はテーブルが2つあります。費用の学生です。 1つのフィールドを3つのWHEREという条件で更新したいとします。つまり、 'fees'テーブルの2つの条件と 'students'テーブルの1つの条件です。1つのテーブルを2つのテーブルに更新します。同一の条件と別のテーブルの1つの条件

私はそれは私がデータベースとしてのsqliteを使用していてくれjava.sql.SQLException: near",": syntax error

のようなエラーが発生します

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

のような多くのクエリを試してみました。私に照会を提案するか、この照会を修正してください。

おかげ

+1

「fee」と「students」テーブルはどのように関係していますか? –

+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') 
+0

私はあなたの2番目のクエリでそれを作った:)、それは私のために働いてくれてありがとうございました...作成者が私たちの両方を正しい道に入れてください:) –

関連する問題