MySql: çoxlu tablelərdən select etmək.

Salam. Burda ilişmişəm, hər postun taglarını göstərmək istəyirəm. Bunun üçün GROUP_CONCAT istifadə etməliyəm?
Siz də tag sistemi bu strukturda qurursuz?

posts
id |title
-----------
1  |title1
2  |title2
3  |title3

tags
id | tag_name
-------------
1  | tag1
2  | tag2
3  | tag3

tags_relationships
id | post_id | tag_id
---------------------
1  | 2       | 1
2  | 2       | 2
3  | 1       | 1


Sorğunu necə yazım ki bu cür table formatı qaytarsın?
id | title | tags
-----------------------
1  | title2|tag1,tag2
1  | title1|tag1,tag3

Yadda saxlama
Kateqoriya: Sual . , , , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (3 cavab var)

(11:34, 16/12/2016 ) #66406

Bu elə WordPress db strukturunun kopyalanmasıdır, nə əcəb elə WordPress-in özünü istifadə etmirsiz?

Qaldı sonda vergüllə ayrılmış teqlərə, ona qəti ehtiyac yoxdur. Ümumi siyahı etmək lazımdır, ki hər teq bir sətirdə olsun. Sonra onu php ilə oxuyanda vergüllə ya nə ilə istəsəz birləşdirərsiz. SQL table-da onları birləşdirmək cəhdi həm artıq əziyyətdir, həm sql-i ağırlaşdırar, həm də kod baxımından yanlış yanaşmadır.

SQL-ə gəldikdə isə

select a.id,a.title , aaa.tag_name from posts a 
inner join tags_relationships aa 
on a.ID=aa.post_id 
inner join tags aaa 
on aaa.id=aa.tag_id 

Vəssalam. Bu sorğu sizə verəcək təxminən belə bir şey

1 title1 tag1
2 title1 tag2
3 title2 tag1
4 title2 tag4
və.s.
Ordan da istədiyiniz oxuyub emal edə bilərsiniz.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (20:00, 16/12/2016 ) #66408

    DB strukturu wordpressdən götürmüşəm. 0-dan yazıb öyrənmək istəyirəm. Amma wordpressin query kodlarını oxuya bilmədim, qarışıq gəldi mənə. Orda da bu cür ediblər?
    Posts tablesində columnların sayını artırandan sonra yenə də bu taglara görə o columnları təkrar-təkrar sırlamaq doğrudur? yoxsa bunu loop içində ikinci bir query ilə etmək yaxşı olar?

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

      (20:44, 16/12/2016 ) #66410

      Yox elə təkrar təbii ki doğru deyil.
      Vördpressdə deyim də necədir:
      sadə posts query ilə postlar oxunur, inner join olmadan. php foreach ilə onlar dərc edilərkən foreach-in içində artıq tags-a müraciət göndərilir post_id parametrinə görə. Deyə bilərsiz dövr içində sql query çoxsaylı mysql sorğularına gətirib çıxarar axı – bəli elədir, amma bu o birindən, hamsı birində nəhəng sql data çəkməkdən daha effektivdir.
      Həm də əgər data çox böyükdürsə (tutaq ki birdən birə min post çəkirsizsə) o halda cache texnologiyalarından istifadə edib məsələni optimallaşdırmaq olar.
      Kiçik dövrlər üçün isə( tutaq ki 20 post çəkirsiz, içində də teqləri), bu 1+20 sorğu demək olacaq ki bu elə də çox deyil.

      Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (1 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (1 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (8 gün əvvəl)

Software Developer cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (8 gün əvvəl)

Triste cavab verdi - Google Adsense vergi (8 gün əvvəl)

E. Hacı cavab verdi - Xif mn kodu (16 gün əvvəl)

Khagrov cavab verdi - Axtardığım mahnını tapa bilmirəm kömək edin (34 gün əvvəl)

E. Hacı cavab verdi - Dünəndən Kompüterlə Twitter/X və Pinterest -ə girə bilmirəm. (42 gün əvvəl)

orkhanrza cavab verdi - AZ9095də bağlama qalıb (46 gün əvvəl)

Ismayil1997 cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (55 gün əvvəl)

revan orucov cavab verdi - Bakıda evə 100mbps+ internet verən provayder var? (59 gün əvvəl)

E. Hacı cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (61 gün əvvəl)

Jurnalist cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (61 gün əvvəl)

asssa1 cavab verdi - Riyazi proqramlar üçün proqram (63 gün əvvəl)

Aleks cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (69 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23288 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024