使用嵌套SELECT访问INSERT

时间:2016-01-26 19:07:59

标签: sql ms-access select insert ms-access-2013

为什么以下SQL语句不起作用?

INSERT INTO dialog (speaker, dialog_text) VALUES (
    (
        SELECT FIRST(id)
        FROM FIGURE
        WHERE char_name="Doe" AND forename="John"
    ),
    "Some text"
);

它产生了这个错误:

  

查询输入必须至少包含一个表或查询。

单个SELECT语句有效。

2 个答案:

答案 0 :(得分:1)

以下作品:

   INSERT INTO dialog (speaker, dialog_text) 
            SELECT FIRST(id), "Some text"
            FROM FIGURE
            WHERE char_name="Doe" AND forename="John"

答案 1 :(得分:1)

Access SQL INSERT ... VALUES语句不允许您为VALUES

之一使用子查询

切换为INSERT ... SELECT语句,因为Piotr suggested将起作用。

或者您可以在INSERT ... VALUES声明中使用Access Domain Aggregate函数,而不是子查询:

INSERT INTO dialog (speaker, dialog_text)
VALUES (
    DMin("id", "FIGURE", "char_name='Doe' AND forename='John'"),
    'Some text'
);