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

你试图将两者结合起来。这就是您出错的原因之一。

于尔根的回答是第二个构造的一个例子。他的这个和那个是字段和常量值的组合。这完全没问题。如果您遇到语法错误,则在您的详细信息中。他的回答显示了正确的总体思路。

逐步构建查询通常是值得的。从这个开始:

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

如果可行,请在括号内添加一个字段以及适合查询的 select 子句的任何内容。继续这些小步骤,直到你做对了。这是我经常采用的方法。

于 2013-09-29T23:11:31.393 回答