mehransattari / Learn_SqlServer

Main points
1 stars 0 forks source link

Join in Sql #11

Open Sevda-FT opened 8 months ago

Sevda-FT commented 8 months ago

برای ترکیب سطرهای دو یا چند جدول به کار می رود. INNER JOIN: رکوردهای مشترک در دو جدول را نمایش می دهد LEFT JOIN: تمام رکوردهای جدول سمت چپ و رکوردهای مشترک جدول سمت راست را نمایش می دهد RIGHT JOIN: تمام رکوردهای جدول سمت راست و رکوردهای مشترک جدول سمت چپ را نمایش می دهد FULL JOIN: تمام رکوردها را نمایش می دهد

SELECT * FROM tbl_1 INNER JOIN tbl_2

mehransattari commented 7 months ago
Select * From Person.Person
Select * From Person.BusinessEntityContact
Select * From Person.BusinessEntity

--==================

SELECT P.FirstName,P.LastName FROM Person.Person AS P
INNER JOIN Person.BusinessEntityContact AS BEC
ON P.BusinessEntityID=BEC.PersonID
INNER JOIN Person.BusinessEntity AS BE
ON BEC.BusinessEntityID=BE.BusinessEntityID

من یه جوین زدم برای این سه تا

BusinessEntityContact این حدول ببینین

کلید اصلیش ترکیب سه کلیده

وکلید خارجیش هم یکی از اون سه تا قرار داده

این کوئری هم نگاه کنید .

Select * From Person.Person
Select * From Person.PersonPhone

Select P.FirstName,P.LastName,PP.PhoneNumber From Person.Person AS P
INNER JOIN Person.PersonPhone  AS PP
ON P.BusinessEntityID=PP.BusinessEntityID

SELECT 
    P.FirstName,
    P.LastName,
    (SELECT PP.PhoneNumber FROM Person.PersonPhone AS PP WHERE PP.BusinessEntityID = P.BusinessEntityID) AS PhoneNumber
FROM 
    Person.Person AS P;

این دو کوئری دقیقا مثل همن با دقت کوئری دومی رو ببین

اما کوئری اول که با جوین زدم بهینه تره

این کوئری هم بین پرسنل وکارمند ارتباط یک به یک

Select * From Person.Person
Select * From HumanResources.Employee
Select P.FirstName,P.LastName,E.JobTitle From Person.Person AS P
INNER JOIN HumanResources.Employee AS E
ON P.BusinessEntityID=E.BusinessEntityID

Select P.FirstName,P.LastName,E.JobTitle From Person.Person AS P
LEFT JOIN HumanResources.Employee AS E
ON P.BusinessEntityID=E.BusinessEntityID

Select P.FirstName,P.LastName,E.JobTitle From Person.Person AS P
RIGHT JOIN HumanResources.Employee AS E
ON P.BusinessEntityID=E.BusinessEntityID

اونی که LEFT هست ببینید واجرا کنید خروجی ببینید مهمه