2017-04-24 4 views
-1

で同じ価値観を共有する2つのテーブルを結合私は、このSQLは、すべての行がテーブルに参加

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

をすれば、私は追加いくつかの人工的なデータで、この結果を得る二つのテーブル

material 
id 
name 

material_length 
id 
price 
amount_on_stock 
price 
length 

を持っています:

enter image description here

どのように私はACRを共有されているすべての長さを選択しますすべての材料をoss?

たとえば、pillarpillar 2の長さが同じであることがわかります。8、共有長番号のみを選択できますか?

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

これは数をlengthで集約し、カウント:だから、この場合には、それだけで8 pillarpillar 2両方のようになりますが、すべての材料間で共有長をしたい場合は8

+0

サンプルテーブルのデータと期待される結果をすべて追加します。 – jarlh

+1

その行の 'material.id'に何を表示しますか? – paul

+3

SQLの質問では、常にDBMSにタグを付けてください。 –

答えて

1

の長さの変化を持っています異なる材料IDの次に、その数を材料の数と比較します。

関連する問題