我有一个包含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)
有人可以帮忙解决这个问题吗?
答案 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;