2012-02-23 12 views
1

あるテーブルから別のテーブルにデータをコピーしたい。どうやって?1つのクエリで3つのテーブルにアクセスする

$P_studentnumber=mysql_real_escape_string($_POST['studentnumber']); 
$P_subjectcode=mysql_real_escape_string($_POST['subjectcode']); 
$P_semester=mysql_real_escape_string($_POST['semester']); 

$sql "INSERT units INTO grades (units) FROM subjects WHERE subjectcode='$P_subjectcode'"; //<--THIS IS THE PART THAT I WOULD WANT TO ADD 

$sql="INSERT INTO grades (studentnumber,course, subjectcode, semester, instructorname, units) SELECT '$P_studentnumber', course, '$P_subjectcode', '$P_semester','$instructorname', 'units' FROM students WHERE studentnumber='$P_studentnumber'"; 

答えて

1

あなたは試すことができます:

INSERT table1(col1,col2) SELECT col1,col2 FROM table2 
1

はsite_constants_description_new SELECT site_constants_descriptionにこの

INSERTのようにしてみてください* site_language.site_language_id = site_constants_description_new.site_language_id site_constants_description_new、site_language FROM;。

歓声

0

SELECT...INSERT文の正しいSQL構文は次のとおりです。

INSERT INTO tableA (colA, colB, colC) 
SELECT colA, colB, colC 
FROM tableB 
WHERE colA = 'valueHere' -- this statement here is the condition 

列名(またはフィールドが互いにと一致する必要があることを覚えておく必要があります。 INSERTに設定する列が一致しない場合は、INSERTでも構いませんが、ALIASを入力してください。

INSERT INTO tableA (colA, colB, colC) 
SELECT tableB.fieldA as colA, tableB.fieldB as colB, tableC.fieldC as colC 
FROM tableB INNER JOIN tableC ON tableB.fieldA = tableC.fieldA 
WHERE tableC.fieldA = 'valueHere' -- this statement here is the condition 
JOINED表で同じ

INSERT INTO tableA (colA, colB, colC) 
SELECT fieldA as colA, fieldB as colB, fieldC as colC 
FROM tableB 
WHERE fieldA = 'valueHere' -- this statement here is the condition 

関連する問題