2017-11-30 8 views
0

테이블이 두 개 있습니다 수수료학생입니다. 나는 3 개의 WHERE 조건들, 즉 'fees'테이블에서 2 조건과 'students'테이블에서 1 조건으로 수수료 필드 하나를 업데이트하고 싶습니다. 하나의 테이블을 2로 업데이트합니다. 동일한 테이블의 조건과 다른 테이블의 하나의 조건

나는 그것은 내게 데이터베이스로 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

두 번째 쿼리로 완료했습니다. :) 제게 너무 바빴습니다 ... 작성자가 올바른 경로에 우리 둘을 넣을 수 있습니다. :) –