Sql 联接两个表,其中所有行在联接表中共享相同的值

Sql 联接两个表,其中所有行在联接表中共享相同的值,sql,Sql,我有两张桌子 material id name material_length id price amount_on_stock price length 如果我这样做 SELECT * FROM material JOIN material_length ON material.id = material_length.material_id 我通过添加一些人工数据得到了这个结果: 如何选择所有材质共享的所有长度 例如,您可以看到支柱和支柱2共享相同的长度:8,我是否可以仅选择共享长度

我有两张桌子

material
id
name

material_length
id
price
amount_on_stock
price
length
如果我这样做

SELECT * FROM material JOIN material_length ON material.id = material_length.material_id
我通过添加一些人工数据得到了这个结果:

如何选择所有材质共享的所有长度


例如,您可以看到
支柱
支柱2
共享相同的长度:8,我是否可以仅选择共享长度编号?因此,在这种情况下,它将仅为8,因为
支柱
支柱2
的长度变化均为8。

如果您希望在所有材质中共享长度:

select ml.length
from material_length ml
group by ml.length
having count(distinct ml.material_id) = (select count(*) from material);

这将按
长度
进行聚合,并统计不同材质ID的数量。然后将该数字与材料的数量进行比较。

添加一些示例表数据和预期结果-所有内容都是格式良好的文本。您希望在该行显示
材料.id
的什么内容?对于SQL问题,请始终标记您的DBMS。请阅读并接受答案