2015-06-10 10 views
1

У меня проблема с запросом INSERT. Я хочу вставить некоторые фиксированные значения в качестве имени, но также некоторые расчетные значения. Простой пример:SQLite INSERT с SELECT

INSERT INTO Players 
VALUES('Name', 10.0, SELECT COUNT(*) AS Amount FROM Stack7 WHERE Name LIKE '%Name%', 1.0) 

Таблица Игроки:

CREATE TABLE `Players` (
    `Name` TEXT, 
    `Points` REAL, 
    `Games` REAL, 
    `Result` REAL 
) 

Компилятор говорит: рядом "SELECT": ошибка синтаксиса:

ответ

3

Положите ваш выбор в квадратных скобках:

INSERT INTO Players 
VALUES('Name', 
     10.0, 
     (SELECT COUNT(*) AS Amount FROM Stack7 WHERE Name LIKE '%Name%'), 
     1.0); 

Таким образом, компилятор знает, где определено одно значение по вашему выбору, начинается и заканчивается. И вы можете использовать запятую (,) в своих скобках, если это необходимо.

+0

Невероятно, что это было так просто! Я работаю над ним около 2 часов. Есть ли возможность вставить значение, рассчитанное на основе двух предыдущих? Представьте себе другое SELECT, например, столбец Точки вместо 10.0. Не могли бы мы поместить что-то похожее (Столбцы/Сумма) вместо последнего вставленного значения (1.0)? В приведенной выше форме он не работает - «нет такого столбца: Пункты:» он не видит этих выборок. – user2923339