2016-04-09 30 views
0

私は内部結合、左結合、右結合、外部結合について知っています。 自己結合とは何ですか? 自己結合とは何かを説明し、使用する場所と使用する場所を教えてください。セルフ・ジョインとは何ですか?また、3つ以上のテーブルのセルフ・ジョインを作成する方法は?

次に、自己結合を使用して3つ以上のテーブルを結合する方法を知りたいと思います。

例:顧客テーブル

1)得意先のuniqueidentifier主キーNOT NULL、 2)CustomerNameのVARCHAR(100)、 3)CustomerTypeID UNIQUEIDENTIFIERヌル、

CustomerType

1 )CustomerTypeID uniqueidentifierプライマリ・キーnot null 2)CustomerType varchar null

CustomerAddress表

1) 2)得意ヌルUNIQUEIDENTIFIER、 3)あるAddressId UNIQUEIDENTIFIERヌルnullでない主キーをUNIQUEIDENTIFIER CustomerAddressID、

アドレス

1)主キーをUNIQUEIDENTIFIERあるAddressId nullでない、 2)Street varchar(100)null、 3)場所varchar(100)null、 4)varchar(100)、nul L、 5)エリアID UNIQUEIDENTIFIERヌル、 6)PINコードVARCHAR(100)

エリア

1)nullでない主キー、 2 UNIQUEIDENTIFIERエリアID)エリアvarchar型(ここでは100)

私はいくつかのテーブルを言及します。今、CustomerName、CustomerType、Street、Place、Location、Area、PinCodeを表示したいと思います。今私はこれらのテーブルの自己結合を置く。いずれかがこの概念を説明してください。

答えて

0

セルフ・ジョインは、自身に表を結合しています。あなたが使用したい親カテゴリ名とカテゴリの名前をリストする必要がある場合は、だから、このようなシナリオでbelow-

TableProductCategory


ID  CategoryName ParentCategoryID 

1  Clothes  NULL 
2  Jeans   1 
3  Shorts  1 

のようなシナリオで行われます自己はあなたの条件のために、以下の

Select A.CategoryName, B.CategoryName as ParentCategoryName 
from 
TableProductCategory A LEFT JOIN TableProductCategory B 
on A.ParentCategoryID=B.ID 

のように参加

あなたは

Select 
C.CustomerName, 
T.CustomerType, 
A.Street, 
A.Place, 
A.Location, 
AA.Area, 
A.Pincode 
From 
    Customer C 
    LEFT JOIN CustomerType T on C.CustomerTypeID=T.CustomerTypeID 
    LEFT JOIN CustomerAddress CA on C.CustomerID =CA.CustomerID 
    LEFT JOIN Address A on A.AddressID=CA.AddressID 
    LEFT JOIN Area AA on AA.AreaID=A.AreaID 
の下に、クエリのような簡単な LEFT JOINを使用する必要があるのCustomerName、CustomerType、ストリート、場所、場所、地域、PINコード

関連する問題