2016-04-11 4 views
1

私はプロジェクトに取り組んでおり、与えられた値から引き続き別のテーブルからキーを取得しようとしています。たとえば...値を追加しながら1つのテーブルから情報を取得するにはどうすればよいですか?

INSERT INTO Essay (student_ID, student_essay) VALUES (`Students.student_ID`, 'I WANNA BE THE VERY BEST'); 

は、私は(STUDENT_IDは自動インクリメントであるため、それ以外の数字がオフになります)学生テーブルからSTUDENT_IDを取得する必要がありますが、私はエッセイの値を挿入できるようにする必要があります。

答えて

2

あなたはMax(id)機能を使用する必要があります。

INSERT INTO Essay (student_ID, student_essay) 
     VALUES ((SELECT MAX(s_id) from Students), 'I WANNA BE THE VERY BEST'); 

あなたはそれが最大のidを返し、それが最後のIDを返し、その最後のidはあなたのような、第二のテーブルに挿入できoffcorseので、あなたが自動インクリメントを使用しているにもマックス(ID)機能を使用することができます

ここにS_idがあるということは、あなたが学生テーブルで使用したいidを提供する必要があることを意味します。

+0

StudentsテーブルからLAST_INSERT_ID()が必要です。そのため、Parentsテーブルと同じにすることができます(親は正しい学生にリンクされています)。学生からLAST_INSERT_IDを保存するにはどうすれば値として挿入できますか? @PiyushGupta – ribre817

+0

私は質問に完全なSQL文を追加しました。私は今、別のエラーを取得しています。 – ribre817

+0

max(id) –

1

私はあなたが何を望んでいるかわかりませんが、おそらくSELECTからのINSERTだけが必要です。

INSERT INTO Essay (Student_id, Student_essay) 
SELECT student_id, ? student_essay 
FROM Student 
WHERE name = ?; 

あなたは、ドキュメントでこれを見つけることができます:Insert from select MySQL

疑問符を使用すると、アプリケーションから送信されます値を表します。

これはあなたの問題を解決する必要があります。

INSERT INTO Essay (Student_id, Student_essay) 
SELECT student_id, 'I WANNA BE THE VERY BEST' student_essay 
FROM Student 
WHERE email = '[email protected]'; 
+0

student_IDを別のテーブル(Students)から取得する必要がありますが、そのテーブルにはStudent_essayが含まれていません。私はそれを自分で入力する必要があります。 @georgeos – ribre817

+0

どうすれば詳細に説明できますか?または、エッセイのリストがあり、それぞれがエッセイに定義された順序でStudent_idに関連していますか? – georgeos

+0

私は学生に関する情報を含むStudentsという名前のテーブルを持っています。新しい生徒をテーブルに挿入するたびに、auto_increment変数 "student_id"が増分されます。私が入力する最初の生徒は学生1です。しかし、親の情報を挿入しようとすると、Student_idからIDを取得していないという外部キーの制約があります。そのため、手動で挿入しようとしています。親には、学生と同じstudent_idが含まれています。 – ribre817

関連する問題