Mysql bazadan 2 ta jadvaldan malumotlarni matrix ko'rinishida olish

0 ovoz
100 marta ko‘rilgan
so‘radi 08 oktabr parmonov98 (878 bal)
tahrirlandi 08 oktabr Saidolim

1-jadval 

idcate_namecat_linkcat_desc
1Languageslangsabout langs
2frameworksframesabout frames 
3librarieslibsabout libs

2-jadval

idparent_idsubcat_namesubcat_desc
11phpabout php
21javascriptabout js
32c++about cpp

shu jadvallardan menga  quyidagi tarzda kerak

kimda qanday SELECT query ni tavsiya qiladi. har doimgiday optimal varianti ma'qul!

bu mysqlda bo'lishi kerak!

izoh qoldirdi 08 oktabr SARVARBEK (183 bal)
Savolingizni yaxshi tushunmadim. Agar 2-jadvaldagi parent_id maydoni 1-jadvalga ulangan bo'lsa, u holda oddiygina

SELECT j1.cate_name, j1.cat_desc, j1.cat_link, j2.subcat_name, j2.subcat_desc
FROM Jadval1 j1, Jadval2 j2
WHERE j1.id=j2.parent_id

qilib qo'ysangiz bo'ldi menimcha.
izoh qoldirdi 09 oktabr parmonov98 (878 bal)
double degree array bo'ladiku o'shanaqa kerak pastdagi rasm boru o'shanday.
recordlar bo'ladi, har bir recordda bitta cat bo'yicha uning sub cati bo'ladi, masalan
frameworks ni olamiz uni ichida yii, laravel, symfony va boshqalar bo'ladi.
izoh qoldirdi 09 oktabr parmonov98 (878 bal)
boshqa yechim topdim.lekin mysqlni o'zida bo'lsa tezroq bo'ladimi deb o'ylayapman.
izoh qoldirdi 09 oktabr SARVARBEK (183 bal)
tahrirlandi 09 oktabr SARVARBEK
Tushunishim bo'yicha sizga quyidagicha query kere:

SELECT j1.cate_name, j1.cat_desc, j1.cat_link, j2.subcat_name, j2.subcat_desc
FROM Jadval1 j1, Jadval2 j2
GROUP BY j1.cate_name
HAVING j1.id=j2.parent_id

Lekin, bu juda oddiy queryde, manimcha man sizga nima kereligini tushunmadim shekilli.
izoh qoldirdi 09 oktabr parmonov98 (878 bal)
categoriyalar bor, har birtta catga kiruvchi subcategoriyalar  bor, subcatlar va cat alar alohida tablelarda, menga shunaqa so'rov kerak unda fetch qilingan array ikki(2-3) o'lchamli bo'lishi kerak;
ya'ni
0 => array{
'id' => 1,
'title' => 'languages',
'content' =>
        0 = > array{
         'id' => 1,
         'title' => 'php',
         'content' =  array{
                      'php' => 'php is a server side script lang',
             
                 }
        }
    1 = > array{
         'id' => 1,
         'title' => 'js',
         'content' =  array{
                      'js' => 'php is a client side script lang',
             
                 }
        }
}

$res[0]['content'][0]  shunaqa murojaat qilish imkoni bo'lishi kerak menda phpda yoki js umuman buni farqi yo'q.muhimi yuqoridagi strukturadagi shaklga kelsa bo'ldi baza
izoh qoldirdi 09 oktabr SARVARBEK (183 bal)
Eha, endi tushundim. Manimcha bu narsani sql query orqali qilishni iloji bo'lmasa kerak. Chunki $res[0] da ['content'] mavjud bo'lmay qolishiyam mumkinku.
izoh qoldirdi 10 oktabr parmonov98 (878 bal)
o'zi unaqa column, ammo temporarly create qilib olish kerak, subcat content ostida boricha olinadi, yo'g'ida qolaveradi, muommo yo'q. o'zim ikki so'rov va php da sikl bilan ishlash to'g'ri kelyapti shuni mysqlda qilsa yaxshiroq bo'lardi degandim! demak iloji yo'qmi? hozir mysqlni official guidelarini titkilayapman, chiqib qolar!

Iltimos, saytga kiring yoki ro‘yxatdan o‘ting va shunda ushbu savolga javob berishingiz mumkin bo‘ladi.

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...