私はペットのサイズを表すpet_sizeというテーブルを手に入れました! サイズとすることができる:sqlがサブクエリに存在しない場合でも値を返す方法は?
id name
1 small
2 medium
3 large
はまた、提供未知かを表す0が、それをテーブルに追加されません。
は、その後、私はこのクエリを得た:
SELECT pet_breed.id, pet_breed.breed_name, pet_type.type_name, pet_size.size_name
FROM pet_breed,
pet_type,
pet_size
WHERE pet_breed.petTypeId = pet_type.id
AND pet_breed.sizeId = pet_size.id
ORDER BY pet_breed.id
上記作品完全pet_breed.sizeIdに0を得た者を除くこれらの任意のレコードのために、それは最もエレガントな何、pet_size.idに存在しないため、それを修正する方法は、pet_sizeテーブルにダミーの値を追加するほかに?
sizeIdが0の場合は、size_nameに "unknown"を使用します。
最後に、上記のクエリを最適化することができますか?あなたは古いスタイルを使用している
タグはdbmsのみ使用されます。 MySQLまたはMS SQL Serverを使用していますか? – jarlh
ベストオプションは、最も単純なものですが、ペットサイズテーブルに '0、 'unknown'という値を持つレコードを追加することです。 –
ステップ1)現代的で明示的な 'join'構文に切り替えます。ステップ2)左結合に変換します。 – jarlh