Sqlite база данных вставки данных из другой таблицы вставляет только одну строку - PullRequest
0 голосов
/ 13 апреля 2019

У меня проблема при вставке данных из таблицы продуктов, которая содержит 3 строки с quote_id = 1. Я могу получить только одну из продуктов в таблицу цен.

Код для вставки в цену

db.execsql("insert into price (name, quantity ) values ((select from product title, quantity where quote_id =1 )  )   " )

Обновлено:

Я хочу вставить статический идентификатор единицы в тот же самый устав;значение = 1;

insert into price (price_id,name, quantity,row_total) 
"+value+",select title, quantity,SUM(price*quantity) 
from product where quote_id = 1

Что-то, что я хочу получить, это

Ответы [ 3 ]

1 голос
/ 13 апреля 2019

Вы не используете правильный синтаксис.Попробуйте это:

insert into price (price_id, name, quantity) 
select 1, title, quantity 
from product 
where quote_id = 1

Вы должны не использовать ключевое слово values в этом случае.Это вернет все строки where quote_id = 1 из таблицы product и вставит их в таблицу price.Если возвращается только 1 строка, то эта 1 строка будет вставлена.Существуют ли какие-либо другие ограничения в таблице price, которые не позволяют вставлять больше строк, например, уникальные индексы? Редактировать :

db.execsql(
    "insert into price (price_id, name, quantity) select " + 
     value + 
    ", title, quantity from product where quote_id = 1");
0 голосов
/ 13 апреля 2019

db.execsql ("вставить в цену (имя, количество) выбрать заголовок, количество из продукта, где quote_id = 1")

0 голосов
/ 13 апреля 2019

Если «quote_id» является первичным ключом таблицы цен, а «quote_id» из таблицы продуктов совпадают, то вы просто перезаписываете ту же запись.

Если это не так, то я рекомендую запросить продукт, чтобы убедиться, что есть несколько записей с quote_id = 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...