【问题标题】:Access INSERT with nested SELECT使用嵌套 SELECT 访问 INSERT
【发布时间】:2016-05-03 11:43:12
【问题描述】:

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

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

它会产生这个错误:

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

单个 SELECT 语句有效。

【问题讨论】:

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


    【解决方案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'
    );
    

    【讨论】:

    • 当我在 MS Access 中运行此代码时,一切正常,但是当我尝试在 C# 中运行它时,参数化后,我得到一个“参数很少”。例外。你知道为什么吗?我要为这个问题开一个新帖子吗?
    • 我认为我们需要查看参数查询和提供参数值的 c# 代码。所以,是的,这已经足够不同了,应该是一个新问题。
    【解决方案2】:

    以下作品:

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

    【讨论】:

    • 第二个SELECT 语句可以使用吗?我不知道怎么做。
    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2015-03-21
    相关资源
    最近更新 更多