私はSQLクエリの演習を行っていましたが、同じ名前の3つの列があり、そのうちのいくつかにnullが含まれているところまで到達しました。これは、3つではなく1つの列の呼び出し価格に組み合わせることができるオプションです。
Short database description "Computer firm":
The database scheme consists of four tables:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
表「製品」には、メーカー、モデル番号、およびタイプ(「PC」、「ラップトップ」、または「プリンター」)に関する情報が含まれています。Productテーブルのモデル番号は、すべてのメーカーと製品タイプで一意であると想定されています。テーブル「PC」のコードで一意に指定する各PCは、モデル(Productテーブルを参照する外部キー)、速度(MHz単位のプロセッサの)、RAMの合計量(Mb単位)、ハードディスクドライブ容量によって特徴付けられます。 --hd(Gb単位)、CD ROM速度-cd(たとえば、「4x」)、および価格。テーブル「ラップトップ」は、画面サイズ(画面(インチ))に置き換えられたCD ROM速度を除いて、PCの1つと似ています。テーブル「Printer」の各プリンタについて、プリンタがカラーであるかどうかが通知されます(カラープリンタの場合、color属性は「y」です。
演習:7メーカーBが製造したすべての製品(任意のタイプ)のモデルと価格を調べます。
私の質問:
SELECT distinct Product.model, PC.price, Laptop.price,Printer.price as price
from Product
left join PC
on Product.model=PC.model
left JOIN Laptop
ON Product.model=Laptop.model
left join Printer
on Product.model= Printer.model
where Product.maker='B';
出力:
あなたの質問:
model price price price
1121 850 NULL NULL
1750 NULL 1200 NULL
正しいクエリ:
model price
1121 850
1750 1200