获取多个输入并插入sqlite表

时间:2017-06-29 06:57:47

标签: python python-2.7 sqlite dialog

我有一个包含3列(A,B,C)的数据库表。我想在表格中添加一些行,因为我将通过制作像这样https://pastebin.com/0JYm5x6e的'textentrydialog'来从用户那里获取输入。但问题是我想在表中添加多行“A”的多个行,但B和C的值相同(例如)

         B = Ram          
         C = Aam      
         A = s,t,k  

因此表中的值应以这种方式插入:
(S,羊,AAM)
(吨,羊,AAM)
(k,Ram,Aam)

有人可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

这是一个提案,能够使用您显示的输入创建您显示的输出。

请注意,我假设您坚持输入的方式,这意味着使用单个表格 如果您可以接受不同的输入,我建议使用两个表。 一个(id,A,C)一个(id,B),然后使用join using(id)进行查询。

MCVE就是答案的结尾。它包含一些额外的测试用例,我用它来证明它不仅为给定的输入提供输出,还试图猜测明显的用例。

查询:

select A, group_concat(B), C 
from toy 
group by A,C;

输出:

Mar|t,u|Aam
Ram|s,t,k|Aam
Ram|k,s,m|Maa

MCVE:

PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE toy (A varchar(10), B varchar(10), C varchar(10));
INSERT INTO toy VALUES('Ram','s','Aam');
INSERT INTO toy VALUES('Ram','t','Aam');
INSERT INTO toy VALUES('Ram','k','Aam');
INSERT INTO toy VALUES('Mar','t','Aam');
INSERT INTO toy VALUES('Mar','u','Aam');
INSERT INTO toy VALUES('Ram','k','Maa');
INSERT INTO toy VALUES('Ram','s','Maa');
INSERT INTO toy VALUES('Ram','m','Maa');
COMMIT;