0

すべての入力データがわかっている場合に挿入を行う方法を理解しており、すべてのデータが選択に依存している場合に挿入を行う方法を知っていますが、その間を行う方法が見つかりません。私が今いる場所:

INSERT INTO takes (stu_id, "CS-001", 1, "Autumn", 2009, null)
VALUES (SELECT id AS stu_id
FROM student
WHERE dept_name = "Comp. Sci.")

したがって、学生のIDを除く他のすべての入力データを知っていますが、MySQLは構文エラーを返します。

4

2 に答える 2

1
INSERT INTO takes (stu_id, col2, col3, col4, col5, col6) 
SELECT id, 'CS-001', 1, 'Autumn', 2009, null
FROM student 
WHERE dept_name = 'Comp. Sci.'

宛先の列名がわかりません。上記のクエリで実際の列名に置き換える必要があります。

于 2013-09-29T17:27:15.317 に答える
0

挿入クエリは次のように構成できます。

insert into table
(field1, field2, etc)
(value1, value2 etc)

またはこのように:

insert into table
(field1, field2, etc)
select this, that, etc
from etc

あなたは2つを結合しようとしました。これが、エラーが発生した理由の 1 つです。

ユルゲンの答えは、2番目の構成の例です。彼のこれとあれは、フィールドと定数値の組み合わせです。それはまったく問題ありません。構文エラーが発生した場合は、詳細に記載されています。彼の答えは正しい一般的な考え方を示しています。

多くの場合、クエリを段階的に作成する価値があります。これから始めます:

insert into takes
(stu_id)
select id
from student
where dept_name = 'Comp. Sci'

それが機能する場合は、括弧内に 1 つのフィールドを追加し、クエリの選択句に適切なものを追加します。正しく理解できるまで、これらの小さなステップを続けてください。私がよく取っている方法です。

于 2013-09-29T23:11:31.393 に答える