如何解决SQLite:如何使用SELECT在一个表中的列中检索数据,以将检索到的数据插入另一表中
我正在尝试使用sqlite从主表(mutants.info)中检索数据并将该表中的数据插入辅助表(mutants.teams)中。主表有多个列,但我只想从其中一列(称为“团队”)中检索数据。我的目标是让脚本从“团队”字段/列中检索数据并将该数据插入辅助表中,然后计算某个团队名称在该字段中出现的次数。
我编写了以下sqlite脚本,但是它没有按照我想要的方式填充辅助表。
INSERT OR REPLACE INTO "mutants.teams" (team,members) Values(
(SELECT team FROM "mutants.info"),(SELECT COUNT(*) FROM "mutants.info" WHERE team = (SELECT team FROM "mutants.info"))
);
当我尝试运行此脚本时,它将使用在主表的“团队”列中看到的第一个“团队名称”填充辅助表,但不填充其中存在的任何其他“团队名称” “团队”字段。如何使此脚本提取出现在“团队”列中的其他“团队名称”?
表配置如下:
+-----------------------------------------------------------+
| main |
+-----------------------------------------------------------+
|id |mutant |powers |team |location |
+-----------------------------------------------------------+
|1 |Veto |Psionic |Ninjas |China |
+-----------------------------------------------------------+
|2 |Wrecker |Enhanced Strength |The Crew |Chicago |
+-----------------------------------------------------------+
|3 |Atlas |Godlike Powers |The Gods |Heaven |
+-----------------------------------------------------------+
|4 |Aria |Sonic Energy Powers|The Crew |Chicago |
+-----------------------------------------------------------+
+-----------------------+
| secondary |
+-----------+-----------+
| team | members |
+-----------+-----------+
| The Crew | 13 |
+-----------+-----------+
| Ninjas | 27 |
+-----------+-----------+
| The Gods | 127 |
+-----------+-----------+
| Chosen | 600 |
+-----------+-----------+
该脚本的目标是从主表中的team字段中检索数据,并使用该信息填充第二个表,然后计算组名出现在主表中的次数。
我很难获得正确的编码来从第一个表中检索此数据并将其插入第二个表中。我将不胜感激,有人可以为您提供帮助。
解决方法
我怀疑您想要的是什么
INSERT INTO "mutants.teams" (team,members)
SELECT team,COUNT(*)
FROM "mutants.info"
GROUP BY team
此查询从"mutants.info"
中选择所有(不同的)球队名称,并将它们插入在"mutants.teams"
中,每个球队出现在"mutants.info"
中的次数。
我不知道为什么要在代码INSERT OR REPLACE
中使用而不是仅在INSERT
中使用。
如果"mutants.teams"
中已经有行,并且如果团队名称存在唯一的约束冲突,则您希望将它们替换为新行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。