2009-07-07 6 views
1

, INSERT 명령에 도움이 필요합니다. IDsubject는 연결되어 관계형 데이터베이스를 형성합니다. 사용자의 주제에 따라 성적을 삽입하고 싶지만 그 방법을 모르겠습니다. 나는 많은 과목이있을 수 있기 때문에 주제에 따라 성적 테이블에 등급을 삽입 할 등급나는 두 개의 테이블이 두 테이블

나는 특정 등급이 적용하려면 - 이름 - - 주제 :

나는 세 가지 값을 가질 특정 주제에.

+0

내가 새 태그를 사랑 :) –

+1

이 아니다 숙제. –

답변

1
INSERT INTO GRADES (IDSUBJECT, GRADE) 
    (
    (SELECT SubjID 
    FROM SUBJECTS 
    WHERE USERNAME = [username] 
    AND SUBJECT = [subject]), 
    [grade] 
) 

당신은 주제 ID가 없지만 주체 이름 만있는 이유가 있습니까? 또한 사용자 이름이 그레이드 테이블이 아닌 subject 테이블의 필드가되도록 하시겠습니까?

+1

+1 "사용자 이름을 성적 테이블의 필드가 아닌 성적 테이블에 실제로 넣으시겠습니까?" – defines

+0

친절하게 고마워요 :) 등급은 사용자와 주제의 조합에 따라 다르므로 등급 표의 필드로 사용자를 지정하는 것이 더 합리적이라고 생각합니다. 테이블 디자인은 기관이 각 학생에게 독특한 주제를 제공하는 것처럼 들립니다. – DavidMWilliams

+0

대단히 고맙지 만 계속 "INSERT INTO 문에 구문 오류가 발생했습니다". Username 필드가 있어야하는 위치에 대해 확신 할 수 없습니다. –

1

GRADES.IDgrades가 auto_increment 키이고 자동 생성됩니다. 또한 SELECT 성명에서 값 'A'는 실제 성적 값을 입력하는 곳입니다. 실제로 SUBJECTS 테이블에서 이것을 명시 적으로 선택하는 것이 아니라 명시된 명시 적 값을 선택하는 것입니다. 나는 또한 학년과 과목에 대한 귀하의 가치로서 '수학'과 '빌리'를 각각 사용했습니다.

INSERT into GRADES (IDsubject, grade) 
    SELECT IDsubjects, 'A' 
    FROM SUBJECTS 
    WHERE username = 'billy' 
     AND subject = 'math' 

그러면 IDsubjects 테이블에서 선택된 IDbject와 함께 GRADES에 새 행이 삽입됩니다. IDGrades 자동으로 ID를 생성된다고 가정

+0

감사합니다. 나는 여기에서 같은 오류를 얻지 만 무엇이 잘못되었는지 알아 내려고 노력할 것입니다. –

1
UPDATE Grades SET grade='F' WHERE subject IN(SELECT subject FROM stackoverflow) 
+1

감사합니다. 여기에 오류가 없으면 쿼리가 실행되지만 아무 값도 저장되지 않습니다. –

+0

삽입 대 업데이트? – BIBD

0

, 복수의 ID 열이있는

INSERT INTO GRADES (IDSubject, GRADE) 
SELECT s.IDsubjects, 
     @GRADE 
FROM SUBJECTS s 
WHERE s.USERNAME = @USERNAME 
    AND s.[SUBJECT] = @SUBJECT 

아주 이상한 명명 규칙 (IDSubject )

+0

도움을 주셔서 감사합니다. 그러나 어떤 변화도 보이지 않습니다. 아마도 이것은 MS Access 2007에서 작동하지 않습니까? dotnetasp35 @ –

+0

: 당신은 학년 (IDSubject, 학년) SELECT subjects.IDsubjects, 과목에서 @GRADE 로에게 – van

+0

INSERT를 실행하는 방법의 실제 예를 들어 SQL을주고는 과목 WHERE subjects.USERNAME = '데모'AND 주제 [주제]. = 'math' –

관련 문제