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

时间:2017-04-24 12:51:50

标签: sql

我有两张桌子

material
id
name

material_length
id
price
amount_on_stock
price
length

如果我这样做SQL

SELECT * FROM material JOIN material_length ON material.id = material_length.material_id

我通过添加的一些人工数据得到了这个结果:

enter image description here

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

例如,您可以看到pillarpillar 2共享相同的长度:8,我能以某种方式仅选择共享长度数字吗?因此,在这种情况下,pillarpillar 2的长度变化均为8,因此只有8。

1 个答案:

答案 0 :(得分:1)

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

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

这会按length汇总,并计算不同物料ID的数量。然后将该数字与材料数量进行比较。