2016-04-11 22 views
1

Bir proje üzerinde çalışıyorum ve verilen değerlerden hala yakalanırken başka bir masadan bir anahtar almaya çalışıyorum. Örneğin ... Değer eklerken bir tablodan nasıl bilgi alabilirim?

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

Ben Öğrenciler masaya (student_id otomatik artış olduğu aksi numaralar kapalı olacaktır) den student_id kapmak gerekir, ama denemenin değeri eklemek için gerekiyor .

cevap

2

Sen Max(id) işlevini kullanmanız gerekir.

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

Bunu maksimum id dönecek ve son id dönecek ve o son id sizin gibi, 2 tabloda ekleyebilirsiniz offcorse böylece oto artışı kullanırken de Maks (id) işlevini kullanabilirsiniz

Burada S_id, Öğrenci tablosunda kullanmak istediğiniz kimliği sağlamanız gerektiği anlamına gelir.

+0

Öğrenciler tablosundan LAST_INSERT_ID() öğesine ihtiyacım var, böylece bunu Ebeveynler tablosundan aynı şekilde yapıyorum (Ebeveynler doğru öğrenciye bağlı). LAST_INSERT_ID'yi Öğrenciler'den nasıl depolayabilirim, böylece bir değer olarak ekleyebilir miyim? @PiyushGupta – ribre817

+0

Sorguma tam SQL ifadesini ekledim. Şimdi farklı bir hata alıyorum. – ribre817

+0

Sorumu güncelledim ve maksimum (id) –

1

Ne istediğinizden emin değilim, ama muhtemelen sadece SELECT'ten bir INSERT'e ihtiyacınız var.

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

Sen docs bu bulabilirsiniz: Insert from select MySQL

Soru İşaretleri Eğer uygulamadan gönderecek değerleri temsil eder.

Bu sorunu çözmek gerekir:

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'yi başka bir tablodan (Öğrenciler) almam gerekir, ancak bu tablo Student_essay içermiyor. Bunu kendi başıma yazmam gerek. @georgeos – ribre817

+0

Ayrıntılı olarak açıklayabilir misiniz, nasıl çalışır? Veya makalelerin bir listesi var mı ve her biri bu makaleler için tanımlanan sırayla Student_id ile ilgili mi? – georgeos

+0

Öğrenciler hakkında bilgi içeren Öğrenciler adlı bir masa var. Her zaman yeni bir öğrenciyi masaya eklerim, auto_increment değişkeni "student_id" artar. Girdiğim ilk öğrenci öğrenci 1'dir. Ancak, ebeveynlerin bilgilerini eklemeye çalıştığımda, Student_id'den kimliğin alınmadığını söyleyen bir yabancı anahtar kısıtlaması alıyorum, bu yüzden kendimi el ile eklemeye çalışıyorum. Ebeveyn öğrenci ile aynı student_id değerini içerir. – ribre817

İlgili konular