2017-03-03 10 views
-1

MSSQL(SSMS)でselectを作成します。SQL SELECT 2テーブルを含む2列

Solds:

CREATE TABLE [dbo].[Solds](
    [Short] [nchar](10) NOT NULL, 
    [Id_Sold] [int] NULL, 
    [Price] [float] NULL, 
    [Date] [date] NULL, 

フルーツ: は、私は2つのテーブル持って

CREATE TABLE [dbo].[Fruits](
    [Short] [nchar](10) NOT NULL, 
    [Name] [nchar](10) NULL, 

そして今、私は果物や価格のALL名を選択すると、価格ずに果物が含まれています。

私はこれを書いた:

SELECT Name.Fruits,Solds.Price FROM Solds 
join 
Fruits on Fruits.Short = Solds.Short 

そして、このコードは私だけで、すべての販売の果物を示し、 質問は、私がここで販売されていない果物の名前を追加することができますどのようにでしょうか?

私は、例えば、出力をしたい:

Carrot 1,20 
Cucumber 2,80 
Carrot 9,20 
Orange NULL -- NULL or Blank 

ジャストで販売されていない労働組合のフルーツにしたいです。

答えて

1

使用LEFT JOIN

SELECT f.Name, 
     COALESCE(s.Price, -1.0) AS Price 
     -- include the following if you want a label for sold/unsold 
     -- CASE WHEN s.Price IS NOT NULL THEN 'Sold' ELSE 'Not Sold' END AS status 
FROM Fruits f 
LEFT JOIN Solds s 
    ON f.Short = s.Short 
+0

非常に仲間ありがとう!あなたは素晴らしいです – Adamszsz

-1

使用LEFT OUTER JOIN:

SELECT f.Name, 
isnull(s.Price, 0) AS Price 
FROM Fruits f 
LEFT OUTER JOIN Solds s 
    ON f.Short = s.Short 

あなたは様々に関する詳細を取得することができます言及リンクの下から合流します。

https://msdn.microsoft.com/en-us/library/zt8wzxy4.aspx

+0

投票の理由はありますか? –

関連する問題