⊗ppPmDOGD 382 of 447 menu

PHP'де байланышкан таблицалардан берилиштерди алуу

Келгиле, бардык колдонуучуларды шаарлары менен чогултуп алуучу суроо жазалы. Бул үчүн бизге LEFT JOIN командасы керек:

Анын синтаксиси төмөнкүдөй көрүнөт:

SELECT талаалар FROM таблицанын_аты LEFT JOIN байланышкан_таблицанын_аты ON байланыш_шарты WHERE тандоо_шарты

Келгиле, бул команданын синтаксисинин жеке бөлүктөрүн карап чыгалы.

Талаалар

Тандоо бир нече таблицадан жүргөндүктөн, * аркылуу бардык талааларды тандоо иштей албайт. Төмөнкү суроо негизги таблицадан гана талааларды тандап алат, бирок байланышкан таблицадан эмес:

SELECT *

Берилиштер бардык таблицалардан тандалып алынуу үчүн, * ден мурун тандалып алуучу таблицанын атын көрсөтүү керек:

SELECT users.*, cities.*

Же болбосо, бизге керек талааларды алардын алдында таблицанын атын көрсөтүп тизмедей алабыз:

SELECT users.name, cities.name

Бул эки ыкманын кемчилиги бар. Мәселе мында, эгерде таблицалардагы талаалардын аттары бирдей болсо, анда PHP массивинде аттардын кагылышуусу болуп, бир гана талаа жеңип чыгат, экинчиси болбой калат.

Бул маселени чечүү үчүн кагылышкан аттарды as командасы аркылуу өзгөртүү керек:

SELECT users.name, cities.name as city_name

Байланыш

ON командасынан кийин биз эки таблицанын ортосундагы байланыш ишке ашырылуучу талааларды көрсөтүшүбүз керек. Биздин учурда бул шаарлар таблицасындагы id талаасы жана колдонуучулар таблицасындагы city_id талаасы болот:

ON cities.id=users.city_id

Суроо

Натыйжада, колдонуучуларды шаарлары менен чогултуп алуучу суроо төмөнкүдөй көрүнөт:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Практикалык тапшырмалар

Сизде товарлар таблицасы жана алардын категориялары таблицасы бар деп коёлу. Товарлардын аттарын алардын категориялары менен бирге чогултуп алуучу суроо жазыңыз.

Кыргызча
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу