我知道内连接,左连接,右连接,外连接。 什么是自我加入? 任何人都会向我解释什么是自我加入,它使用以及在何处使用。
然后我也想知道如何使用自联接加入三个以上的表。
例如客户表
1)CustomerID uniqueidentifier主键不为null, 2)CustomerName Varchar(100), 3)CustomerTypeID uniqueidentifier null,
CustomerType
1)CustomerTypeID uniqueidentifier主键不为null 2)CustomerType varchar null
CustomerAddress表
1)CustomerAddressID uniqueidentifier主键不为null 2)CustomerID uniqueidentifier null, 3)AddressID uniqueidentifier null,
地址
1)AddressID uniqueidentifier主键不为null, 2)Street varchar(100)null, 3)位置varchar(100)null, 4)放置varchar(100),null, 5)AreaID uniqueidentifier null, 6)PinCode Varchar(100)
区域
1)AreaID uniqueidentifier主键不为null, 2)面积Varchar(100)
我在这里提一些表格。现在我想显示CustomerName,CustomerType,Street,Place,Location,Area,PinCode。现在我如何为这些表添加自联接。请任何人解释这个概念。
答案 0 :(得分:0)
自我联接正在加入一个表格。这是在下面的场景中完成的 -
<强> 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
根据您的要求
CustomerName,CustomerType,Street,Place,Location,Area,PinCode
您需要使用下面的简单LEFT JOIN
查询
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