如何获取列中元素的 id 和数量,即使它们在 SQL 中为 0

Posted

技术标签:

【中文标题】如何获取列中元素的 id 和数量,即使它们在 SQL 中为 0【英文标题】:how to get the id and number of elements in a column even if they are 0 in SQL 【发布时间】:2021-08-10 01:47:12 【问题描述】:

希望你做得好,我有两张表,一张是 moduleelement 该模块包含元素,所以我有一个 moduleID 在 element 中,我要做的是显示模块的 ID 和该模块中的元素数量,这里我做了什么:

SELECT module.ID,count(element.ID) AS numElements FROM element JOIN module ON element.moduleID = module.ID WHERE moduleID = module.ID GROUP BY module.ID

但是它只显示了包含元素的模块,那么没有任何元素的模块呢,我真的希望我也可以打印它们并显示它们的元素计数0

模块表的列: 身份证(P) |模块名称 |类ID |上传目录

元素表的列: 身份证(P) |元素名称 |模块ID(F) |教师ID(F) |图标 |缩略图 |上传目录

提前谢谢你

【问题讨论】:

【参考方案1】:

你似乎想要LEFT JOIN

SELECT m.ID, count(e.ID) AS numElements
FROM module m LEFT JOIN
     element e
     ON e.moduleID = m.ID 
GROUP BY m.ID;

我不确定您的 WHERE 子句的目的是什么。我怀疑这是试图获取丢失的行。如果要按元素过滤,请在ON 子句中添加条件。

【讨论】:

成功了,非常感谢您的快速回复

以上是关于如何获取列中元素的 id 和数量,即使它们在 SQL 中为 0的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 DynamoDB 列中的最大数量?

如何计算属于 product_id 的元素的数量并将它们按元素保存在 python 的列表中?

从 pyspark 中的数据框数组类型列中获取“名称”元素

如何使用 Diesel 计算数组列中不同元素的数量?

如何查询随机数量的值以获取唯一 ID 并将它们连接成一个?

如何有效地计算另一列中每个元素的较大元素的数量?