⊗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 файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау