Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll

PHP դասեր - դաս 3.6 - Աշխատանք MySQL տվյալների բազայի հետ։ JOIN օպերատորի տեսակները։

10/05/2025, by Ivan

MySQL-ում ընտրությունը JOIN-ի օգնությամբ կարող է կատարվել տարբեր եղանակներով։ Մենք կփորձենք դիտարկել այս հարցումների բոլոր տեսակները։ Ահա JOIN-ի մասնակցությամբ հարցումների ցանկը․

  1. INNER JOIN
  2. LEFT JOIN
  3. LEFT JOIN առանց խաչաձևումների աջ աղյուսակի հետ
  4. RIGHT JOIN
  5. RIGHT JOIN առանց խաչաձևումների ձախ աղյուսակի հետ
  6. FULL OUTER
  7. FULL OUTER, երբ ձախ կամ աջ աղյուսակն է դատարկ

Իսկ ահա նկարազարդում այս JOIN-ների տեսակների համար․

SQL

Ես կցել եմ join.php ֆայլը մեր կայքի փաթեթին, որտեղ կցուցադրեմ բոլոր գրառումները տարբեր JOIN օպերատորների օգնությամբ։

INNER JOIN

Սկսենք INNER JOIN օպերատորից, քանի որ այն օգտագործվում է լռելյայն, եթե պարզապես գրում եք JOIN։ Այս օպերատորը ընտրում է բոլոր գրառումները երկու աղյուսակներից, որտեղ կատարվում է ON օպերատորից հետո նշված պայմանը։ Մեզ մոտ կան երկու աղյուսակ՝ Files և Messages․

Աղյուսակ Messages

mid bodytext fid
1 Test NULL
2 Hi 2
3 Hello NULL

 ԱղյուսակFiles:

fid path
1 /files/1.png
2 /files/2.png
3 /files/3.png

JOIN-ի միջոցով հարցումը կլինի հետևյալը.

SELECT * FROM Messages INNER JOIN Files ON Messages.fid=Files.fid

Արդյունքում կցուցադրվեն հետևյալ գրառումները

mid bodytext fid path
2 Hi 2 /files/2.png

Այսինքն այնտեղ, որտեղ fid-ը համընկնում է, mysql-ը դուրս է բերում այդ տողերը։

LEFT JOIN

LEFT JOIN-ի դեպքում դուրս ենք բերում բոլոր այն գրառումները, որոնք կան ձախ կողմի աղյուսակում (մեզ մոտ Messages), այդ թվում նաև այն գրառումները, որոնց fid արժեքը առկա է Files աղյուսակում։

Messages աղյուսակ՝

mid bodytext fid
1 Test 2
2 Hi NULL
3 Hello 3

Files աղյուսակ՝

fid path
1 /files/1.png
2 /files/2.png
3 /files/3.png

LEFT JOIN հարցումը կլինի հետևյալը՝

SELECT * FROM Messages LEFT JOIN Files ON Messages.fid=Files.fid

Արդյունքում կստանանք հետևյալ տվյալները՝

mid bodytext fid path
1 Test 2 /files/2.png
2 Hi NULL NULL
3 Hello 3 /files/3.png

LEFT JOIN-ը պետք կգա այն ժամանակ, երբ դուրս ենք բերում բոլոր հաղորդագրությունները, իսկ կցված ֆայլը կա, թե ոչ՝ ստուգում ենք PHP-ով։

LEFT JOIN առանց համընկնողների աջ աղյուսակում

LEFT JOIN-ը դուրս է բերում ձախ աղյուսակի բոլոր գրառումները, բացի այն տողերից, որոնց fid-ն համընկնում է աջ աղյուսակի հետ։

Messages աղյուսակ՝

mid bodytext fid
1 Test 2
2 Hi NULL
3 Hello 3

Files աղյուսակ՝

fid path
1 /files/1.png
2 /files/2.png
3 /files/3.png

LEFT JOIN առանց համընկնողների հարցումը կլինի՝

SELECT * FROM Messages LEFT JOIN Files ON Messages.fid=Files.fid WHERE Files.fid IS NULL

Արդյունքում կստանանք հետևյալ ընտրությունը՝

mid bodytext fid path
2 Hi NULL NULL

LEFT JOIN առանց համընկնողների պետք կգա, երբ ցանկանում ենք ցուցադրել բոլոր գրառումները առանց կցված ֆայլերի։

RIGHT JOIN

RIGHT JOIN-ը դուրս է բերում բոլոր գրառումները աջ աղյուսակից, եթե կան համընկնումներ, ապա նաև տվյալները ձախ աղյուսակից։

Messages աղյուսակ՝

mid bodytext fid
1 Test 2
2 Hi NULL
3 Hello 3

Files աղյուսակ՝

fid path
1 /files/1.png
2 /files/2.png
3 /files/3.png

RIGHT JOIN հարցումը՝

SELECT * FROM Messages RIGHT JOIN Files ON Messages.fid=Files.fid

Արդյունքը՝

mid bodytext fid path
NULL NULL 1 /files/1.png
1 Test 2 /files/2.png
3 Hello 3 /files/3.png

RIGHT JOIN-ը պետք է, երբ ցանկանում ենք ցուցադրել բոլոր ֆայլերը՝ անկախ դրանց կցված լինելուց։

RIGHT JOIN առանց համընկնողների

RIGHT JOIN առանց համընկնողների դուրս է բերում բոլոր գրառումները աջ աղյուսակից, բացառությամբ նրանց, որոնք համապատասխանում են ձախ աղյուսակին։

Հարցումը՝

SELECT * FROM Messages RIGHT JOIN Files ON Messages.fid=Files.fid WHERE Messages.fid IS NULL

Արդյունքը՝

mid bodytext fid path
NULL NULL 1 /files/1.png

Օգտագործվում է, երբ ցանկանում ենք տեսնել այն ֆայլերը, որոնք ոչ մի հաղորդագրության կցված չեն։

FULL OUTER JOIN

Չնայած SQL-ում կա FULL OUTER JOIN, MySQL-ում այդ օպերատորը բացակայում է։ Բայց հնարավոր է էմուլացնել այս հարցումը՝ օգտագործելով LEFT JOIN և RIGHT JOIN և դրանք միացնելով UNION-ով։

SELECT * FROM Messages LEFT JOIN Files ON Messages.fid = Files.fid
UNION
SELECT * FROM Messages RIGHT JOIN Files ON Messages.fid = Files.fid

Արդյունքը՝

mid bodytext fid path
1 Test 2 /files/2.png
2 Hi NULL NULL
3 Hello 3 /files/3.png
NULL NULL 1 /files/1.png

FULL OUTER JOIN առանց համընկնողների

Այս հարցումը միավորում է երկու՝ LEFT JOIN և RIGHT JOIN առանց համընկնողների։ Օգտագործվում է, երբ ցանկանում ենք տեսնել բոլոր հաղորդագրությունները առանց ֆայլի և բոլոր ֆայլերը առանց հաղորդագրության։

SELECT * FROM Messages LEFT JOIN Files ON Messages.fid = Files.fid WHERE Files.fid IS NULL
UNION
SELECT * FROM Messages RIGHT JOIN Files ON Messages.fid = Files.fid WHERE Messages.fid IS NULL

Արդյունքը՝

mid bodytext fid path
2 Hi NULL NULL
NULL NULL 1 /files/1.png

Ահա և վերջ։ Հաջորդ դասերում մենք կսկսենք գրել ավելի բարդ հարցումներ մի քանի աղյուսակների վրա միաժամանակ։