⊗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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა