1

データ:

  1. テーブルの形状:shape_id、shape_name
  2. テーブルshape_forms:shape_form_id、shape_id、shape_form
  3. shape_formは次のようになります:0-、1-正方形、2-三角形-各形状の数は無制限です

選択するには2つのクエリが必要です

  1. shape_formsに円と三角形の両方、または円のみを含み、正方形または三角形のみを含まないすべての形状
  2. shape_formsに三角形のみを含むすべての形状

この課題を解決するためのヒントを教えてください。shape_formsに「groupby」を使用しないように制限されていますが、適切な解決策がない場合

4

1 に答える 1

1

1.

select s.shape_id
from shapes s
inner join shape_forms sf on sf.shape_id = s.shape_id
group by s.shape_id
having 
(
   sum(shape_form = 1) = 0
   and sum(shape_form in (0,2)) >= 2
)
or sum(shape_form <> 0) = 0

2.

select s.shape_id
from shapes s
inner join shape_forms sf on sf.shape_id = s.shape_id
group by s.shape_id
having sum(shape_form <> 2) = 0
于 2012-11-30T17:32:02.043 に答える