Professional Documents
Culture Documents
SQL Join
SQL Join
SQL Join
SQL join/холбох үйлдэл нь хоёр болон түүнээс дээш хүснэгтээс холбоо хамаарал
бүхий мөрүүдийг холбох замаар мэдээлэлүүдийг нэгтгэх үйлдэл юм. Хоёр хүснэгтийн
харгалзах баганууд дахь ижил утгаараа мөрүүд нь хос үүсгэнэ. Хэрэв нэг болон хэд хэдэн
хүснэгтээс мэдээлэл харуулах бол дэд асуулга/subquery болон Join холбоосыг ашигладаг.
Join/холбоос үүсгэх бол ашиглагдах хүснэгтүүдийн нэрийг FROM хэсэгт таслалаар тусгаалах
бичих ба холбоос хийгдэх баганын нөхцөлийг WHERE хэсэгт тодорхойлно. Мөн хүснэгтийн
нэрийн оронд товчлол/alias ашиглаж болно. Товчлолыг хүснэгтийн нэрийн оронд хаана ч
ашиглаж болно. SQL дэх холбоосууд нь үндсэндээ Inner Join болон Outer Join гэж хоёр
хуваагдах ба гадаад холбоос цааш Left Outer Join, Right Outer Join, ба Full Outer Join гэж дэд
хэсгүүдэд хуваагдана.
Эрэмбэлэлттэй холбоос
SELECT s.branchNo, s.staffNo, fName, IName, propertyNo
FROM Staff s, PropertyForRent p
WHERE s.staffNo = p.staffNo
ORDER BY s.branchNo, s.staffNo, propertyNo;
Гурван хүснэгтийн холболт/Three-table join
Join/Холбоос Картесийн үржвэр буюу кросс холбоос гэж нэрлэгддэг хоёр хүснэгтийн хослолын дэд
олонлог. Хоёр хүснэгтийн Картесийн продакт/үржвэр гэдэг бол хоёр хүснэгтийн мөрүүдийн бүх
боломжит хослолоос бүрдэх өөр нэг хүснэгт юм.
Cartesian product:
(1) FROM клаузд нэр дурьдагдсан хүснэгтүүдийн мөрүүдийн нийлбэр буюу Картесийн продакт
хэлбэр.
(2) WHERE клауз ашиглагдсан бол хайлтын нөхцөлийг мөр бүрт хэрэгжүүлэх ба нөхцөл
хангадаж буй мөрүүдийг буцаана.
(3) Үлдсэн бүх мөрүүдийн хувьд, determine the value of each item in the SELECT list to produce a
single row in the result table.
(4) Хэрэв SELECT DISTINCT тодорхойлогдсон бол үр дүнгийн хүснэгтээс давхардсан мөрүүдийг
хасна.
(5) ORDER BY клаук тодорхойлогдсон бол үр дүнгийн хүснэгтийг эрэмблэнэ.
Хэрэв харгалзах утга олдоогүй мөрүүдийг үр дүнгийн хүснэгтэд оруулах бол Гадаад холбоос/Outer
join ашиглана. 3 Төрлийн гадаад холбоос бий: Left, Right, Full Outer joins.
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.Supplier
ID = Suppliers.supplierID AND Price < 20);
SQL IN Operator
IN оператор нь WHERE клаус дахь олон утгууд тодорхойлоход ашиглагдана. Өрөөр хэлбэл IN
оператор нь OR нөхцөлийг олон удаа ашиглахыг товчилсон хэлбэр юм.