4

SQLServer2008データベースがあります。このデータベースには3つのテーブルがあります。

  - Id
  - FullName
  - MembershipStatusId (nullable)
  - HairStyleId (nullable)

MembershipStatus

  - Id
  - Name

ヘアスタイル

  - Id
  - ColorName
  - Description

データベース内のすべての人を一覧表示するクエリを作成する必要があります。MembershipStatusIdとは両方ともnull許容であるため、HairStyleId左外部結合を行う必要があることはわかっています。ただし、テーブルが複数あるため、どうすればよいかわかりません。単一の左外側結合で、私はこれを行うことができることを知っています:

SELECT
  p.*,
  m.Name as 'MembershipStatus',
  -- how do i include the person's hair color as part of my result set?
FROM
  Person p LEFT OUTER JOIN
    MembershipStatus m ON p.[MembershipStatusId]

ただし、ヘアスタイル名に左外側の結合を追加する方法がわかりません。誰かがその人の髪の色を含める方法を教えてもらえますか?

ありがとうございました!

4

2 に答える 2

10

LEFT JOINヘアスタイルテーブルを含めるために別のことをするだけです

SELECT
  p.*,
  m.Name as 'MembershipStatus',
  h.ColorName
FROM Person p 
LEFT JOIN MembershipStatus m 
    ON p.[MembershipStatusId] = m. Id
LEFT JOIN HairStyle h
    ON p.HairStyleId = h.id

SQLFiddleのデモを見る

于 2012-05-14T13:44:18.503 に答える
1

多分このようなもの:

SELECT
    Person.id,
    MembershipStatus.Name AS MemberShip,
    HairStyle.ColorName AS HairStyleColorName
FROM
    Person
    LEFT JOIN MembershipStatus
        ON Person.MembershipStatusId=MembershipStatus.Id
    LEFT JOIN HairStyle
        ON Person.HairStyleId = HairStyle.Id
于 2012-05-14T13:44:46.773 に答える