Mavzu: Ko'p jadvalli so'rovlarni yaratish. Bog’lanish so'rovlari


SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name FROM



Download 95,48 Kb.
bet3/4
Sana29.05.2022
Hajmi95,48 Kb.
#618421
1   2   3   4
Bog'liq
cdfdf

SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name
FROM Employees emp
JOIN Departments dep ON emp.DepartmentID=dep.ID



ID

Name

DepartmentID

ID

Name

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

1

Boshqaruv

1001

Petrov P. P.

3

3

It

1002

Sidorov S. S.

2

2

Buxgalteriya hisobi

1003

Andreev A. A. A.

3

3

It

1004

Николаев Н.Н.

3

3

ИТ

-- LEFT JOIN вернет 6 строк
SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name
FROM Employees emp
LEFT JOIN Departments dep ON emp.DepartmentID=dep.ID


ID

Name

DepartmentID

ID

Name

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

1

Boshqaruv

1001

Petrov P. P.

3

3

It

1002

Sidorov S. S.

2

2

Buxgalteriya hisobi

1003

Andreev A. A. A.

3

3

It

1004

Nikolaev N. N.

3

3

It

1005

Aleksandrov A. A.

NULL

NULL

NULL

-- RIGHT JOIN вернет 7 строк


SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name
FROM Employees emp
RIGHT JOIN Departments dep ON emp.DepartmentID=dep.ID


ID

Name

DepartmentID

ID

Name

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

1

Boshqaruv

1002

Sidorov S. S.

2

2

Buxgalteriya hisobi

1001

Petrov P. P.

3

3

It

1003

Andreev A. A. A.

3

3

It

1004

Nikolaev N. N.

3

3

It

NULL

NULL

NULL

4

Marketing va reklama

NULL

NULL

NULL

5

Logistika

-- FULL JOIN вернет 8 строк


SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name
FROM Employees emp
FULL JOIN Departments dep ON emp.DepartmentID=dep.ID


ID

Name

DepartmentID

ID

Name

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

1

Boshqaruv

1001

Petrov P. P.

3

3

It

1002

Sidorov S. S.

2

2

Buxgalteriya hisobi

1003

Andreev A. A. A.

3

3

It

1004

Nikolaev N. N.

3

3

It

1005

Aleksandrov A. A.

NULL

NULL

NULL

NULL

NULL

NULL

4

Marketing va reklama

NULL

NULL

NULL

5

Logistika

-- CROSS JOIN вернет 30 строк - (6 строк таблицы Employees) * (5 строк таблицы Departments)


SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name
FROM Employees emp
CROSS JOIN Departments dep


ID

Name

DepartmentID

ID

Name

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

1

Boshqaruv

1001

Petrov P. P.

3

1

Boshqaruv

1002

Sidorov S. S.

2

1

Boshqaruv

1003

Andreev A. A. A.

3

1

Boshqaruv

1004

Nikolaev N. N.

3

1

Boshqaruv

1005

Александров А.А.

NULL

1

Администрация

1000

Иванов И.И.

1

2

Бухгалтерия

1001

Петров П.П.

3

2

Бухгалтерия

1002

Сидоров С.С.

2

2

Бухгалтерия

1003

Andreev A. A. A.

3

2

Buxgalteriya hisobi

1004

Nikolaev N. N.

3

2

Buxgalteriya hisobi

1005

Aleksandrov A. A.

NULL

2

Buxgalteriya hisobi

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

3

It

1001

Petrov P. P.

3

3

It

1002

Sidorov S. S.

2

3

It

1003

Andreev A. A. A.

3

3

It

1004

Nikolaev N. N.

3

3

It

1005

Aleksandrov A. A.

NULL

3

It

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

4

Marketing va reklama

1001

Petrov P. P.

3

4

Marketing va reklama

1002

Sidorov S. S.

2

4

Marketing va reklama

1003

Andreev A. A. A.

3

4

Marketing va reklama

1004

Nikolaev N. N.

3

4

Marketing va reklama

1005

Aleksandrov A. A.

NULL

4

Marketing va reklama

1000

O'tish: Saytda Harakatlanish, Qidiruv

1

5

Logistika

1001

Petrov P. P.

3

5

Logistika

1002

Sidorov S. S.

2

5

Logistika

1003

Andreev A. A. A.

3

5

Logistika

1004

Nikolaev N. N.

3

5

Logistika

1005

Aleksandrov A. A.

NULL

5

Logistika

Jadvallarning taxalluslari haqida eslash vaqti keldi

Ikkinchi qismning boshida aytgan jadvallarning taxalluslari haqida eslash vaqti keldi.

Ko'p sonli so'rovlarda, taxallus bizga maydonning qaysi jadvalidan olinganligini aniq ko'rsatishga yordam beradi. Keling, misolni ko'rib chiqaylik:
SELECT emp.ID,emp.Name,emp.DepartmentID,dep.ID,dep.Name
FROM Employees emp
JOIN Departments dep ON emp.DepartmentID=dep.ID

Unda ID va Name nomlari bo'lgan joylar ikkala jadvalda ham, Employees va Departments-da ham mavjud. Va ularni ajratish uchun biz maydonning nomini taxallus va nuqta bilan, ya'ni "emp.ID", "emp.Name", "dep.ID", "dep.Name".

Nima uchun qisqa taxalluslardan foydalanish qulayroq ekanini eslaymiz – chunki taxalluslarsiz bizning so'rovimiz quyidagicha ko'rinadi:
SELECT Employees.ID,Employees.Name,Employees.DepartmentID,Departments.ID,Departments.Name
FROM Employees
JOIN Departments ON Employees.DepartmentID=Departments.ID

Men uchun juda uzoq va yomonroq o'qildi, chunki maydonlarning nomlari jadvallarning takrorlanadigan nomlari orasida ingl.

Agar ism ikkinchi jadvalda takrorlanmagan bo'lsa-da, taxallussiz ismni belgilashingiz mumkin bo'lsa-da, ko'p sonli so'rovlarda, lekin men har doim ulanish uchun taxalluslardan foydalanishni tavsiya qilaman, chunki hech kim bir xil ismga ega bo'lgan maydon oxir-oqibat ikkinchi stolga qo'shilmaydi, keyin sizning so'rovingiz buziladi, bu maydon qaysi jadvalga tegishli ekanini tushunolmasligi uchun qasam ichish.

Faqat taxalluslardan foydalanib, biz jadvalni o'zi bilan bog'lashimiz mumkin. Keling, har bir xodim uchun, undan oldin qabul qilingan xodimning ma'lumotlarini olish vazifasi bor edi (jadval raqami birlikda kamroq farq qiladi). Keling, jadval raqamlari ketma-ket va teshiksiz beriladi, keyin biz buni quyidagicha qilishimiz mumkin:


SELECT
e1.ID EmpID1,
e1.Name EmpName1,
e2.ID EmpID2,
e2.Name EmpName2
FROM Employees e1
LEFT JOIN Employees e2 ON e1.ID=e2.ID+1 -- получить данные предыдущего сотрудника

Ya'ni, bu erda bir stol Employees, biz "E1" taxallusini va ikkinchi "e2"ni berdik.


JOIN


SELECT l.*,r.*
FROM LeftTable l
JOIN RightTable r ON l.LCode=r.RCode


LCode

LDescr

RCode

RDescr

2

L-2

2

B-2

3

L-3

3

B-3

Bu erda shartlar bajarilgan satrlarni birlashtirish qaytarildi (l.LCode=r.RCode)






Download 95,48 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish