2016-01-26 4 views
1

Почему следующий оператор SQL не работает?Доступ INSERT с вложенным SELECT

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

Он производит эту ошибку:

Query input must contain at least one table or query.

Одиночные SELECT заявление работает.

ответ

1

Access SQL INSERT ... VALUES оператор не позволяют использовать подзапрос для одного из VALUES

Переключение на INSERT ... SELECT заявление, так как Петр suggested будет работать.

Или вы можете использовать функцию доступа Domain Aggregate, вместо подзапроса, в вашем INSERT ... VALUES заявлении:

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

Когда я запускаю этот код в MS Access, все работает отлично, но когда я пытаюсь запустить его на C#, параметризованный, я получаю «До нескольких параметров». исключение. Ты знаешь почему? Должен ли я открыть новую тему для этого вопроса? –

+0

Я думаю, нам нужно будет увидеть запрос параметра и код C#, который поставляет значения параметров. Итак, да, это совсем другое, что это должен быть новый вопрос. – HansUp

+1

... и [здесь] (http://stackoverflow.com/q/35025218/2144390) это! –

1

следующие работы:

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

Будет ли это работать со вторым 'SELECT' заявление? Я не мог понять, как это сделать. –

Смежные вопросы