python-3.x - sqlite 将来自不同表的 2 个查询合并为一个

标签 python-3.x sqlite

我最近又开始使用sql,上次使用它是在microsoft access 2000中,所以如果我有点落后于时代,请多多包涵。

我的 Discord 服务器上有 2 个毫无意义的虚拟货币,供我的玩家玩毫无意义的游戏。这两种货币的交易当前都存储在单独的表中。

我希望汇总每个玩家的所有交易,以便为他们提供每种货币的单一当前金额。我个人可以这样做:

SELECT
 tblPlayers.PlayerID AS PlayerID,
 tblPlayers.Name AS Name,
 SUM(tblGorillaTears.Amount) 
FROM 
 tblPlayers 
INNER JOIN 
 tblGorillaTears
ON 
 tblPlayers.PlayerID = tblGorillaTears.PlayerID 
GROUP BY 
 tblPlayers.PlayerID;

SELECT
 tblPlayers.PlayerID AS PlayerID,
 tblPlayers.Name AS Name,
 SUM(tblKebabs.Amount) 
FROM 
 tblPlayers 
INNER JOIN 
 tblKebabs 
ON 
 tblPlayers.PlayerID = tblKebabs.PlayerID 
GROUP BY 
 tblPlayers.PlayerID;

我需要一个表格,在一行上输出用户名、ID 和每种货币的总计,但是当我这样做时:

SELECT
 tblPlayers.PlayerID AS PlayerID,
 tblPlayers.Name AS Name,
 SUM(tblGorillaTears.Amount) AS GT,
 0 as Kebabs
FROM 
 tblPlayers 
INNER JOIN 
 tblGorillaTears
ON 
 tblPlayers.PlayerID = tblGorillaTears.PlayerID 
GROUP BY 
 tblPlayers.PlayerID
UNION 
SELECT
 tblPlayers.PlayerID AS PlayerID,
 tblPlayers.Name AS Name,
 0 as GP,
 SUM(tblKebabs.Amount) 
FROM 
 tblPlayers 
INNER JOIN 
 tblKebabs 
ON 
 tblPlayers.PlayerID = tblKebabs.PlayerID 
GROUP BY 
 tblPlayers.PlayerID;

每个玩家的每种货币的结果以一行结束。我怎样才能使两种货币出现在同一行?

以前在 MSAccess 中,我能够创建两个查询,然后对这两个查询进行查询,就好像它们是一个表一样,但我不知道在这种情况下如何执行此操作。谢谢<3

最佳答案

UNION 肯定会添加新行,您可以尝试像下面的查询一样。

SELECT TP.playerid                        AS PlayerID, 
       TP.NAME                            AS NAME, 
       (SELECT Sum(TG.amount) 
        FROM   tblgorillatears TG 
        WHERE  TG.playerid = TP.playerid) AS GT, 
       (SELECT Sum(TG.amount) 
        FROM   tblkebabs TG 
        WHERE  TG.playerid = TP.playerid) AS Kebabs 
FROM   tblplayers TP 

关于python-3.x - sqlite 将来自不同表的 2 个查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54860241/

相关文章:

python - 删除每个单词除第一个字母外的所有字母并保留标点符号

python - 单击 "use"元素 Python Selenium

android - 如何从数据库中更新或删除

android - 更改包名称但保留 Android 上的数据库

python - 使用 Python 3.8 中的赋值表达式,为什么我们需要在 `as` 中使用 `with` ?

python-3.x - 在 PySimpleGUI 的打开窗口顶部显示弹出窗口

python - 删除 2d numpy 数组的交替列和行

c - 什么是学习数据库设计的好开源数据库? (设计 DBMS,而不是规范化表/等)

c# - nHibernate与SQLite格式的日期

支持外键的 SQLite 工具?