【发布时间】:2021-10-01 00:53:33
【问题描述】:
【问题讨论】:
-
请编辑您的问题并以文本形式发布表格。请发布您尝试过的查询。
-
共享创建表和插入数据的脚本。图像不起作用。
-
Sqlite 和 mysql 是两个不同的产品。删除了冲突的产品标签。请添加您实际使用的那个。
【问题讨论】:
如果 SQLite 支持 FULL 连接,这将很容易解决,但它不支持。
首先使用 UNION ALL 创建一个结果集,其中包含 2 个表的所有行以及额外的列以涵盖水果和蔬菜,然后聚合,这样在 'tomato' 这样的情况下,您将只有 1 行:
SELECT Fruit_Veggie,
SUM(Count_Fruit) Count_Fruit,
SUM(percent_fruit) percent_fruit,
SUM(Count_Veggie) Count_Veggie,
SUM(percent_Veggie ) percent_Veggie
FROM (
SELECT Fruit Fruit_Veggie, count Count_Fruit, percent percent_fruit, 0 Count_Veggie, 0 percent_Veggie
FROM TableA
UNION ALL
SELECT Veggies, 0, 0, count, percent
FROM TableB
)
GROUP BY Fruit_Veggie
【讨论】:
您需要进行完全联接或不同的联合。您知道这一点是因为您有一个番茄行,其中包含两个表中的值。这将为您提供空值,您将使用合并将其变为 0(零)。这是作业吗?
【讨论】:
您已粘贴图像。因此,我们很难复制文本和创建脚本。您应该在提问时分享脚本。
UNION 有什么问题,请分享。我认为下面的查询应该有效。但也请与工会分享您的问题。
SELECT Fruit Fruit_Veggie, Count count_Fruit, percent percent_Fruit, 0 Count_Veggie, 0 pecent_Veggie FROM A
UNION
SELECT veggie, 0, 0, count, percent from B
【讨论】:
tomato。他希望fruit 和veggie 表中的行并排显示,而union 将显示两行tomato。可能union 成为子查询然后group by?