php / mysql dizi seçim döngüsünde sorguları azaltmak için nasıl

1 Cevap php

benim php / mysql projede hikayeler ayrıntıları ve etiketleri 'adlarını göstermek gerekir.

bir dizi olarak etiketleri id kaydetmek etiketler: her hikaye satır için, bir dava adında var

Tablo adı: stories

masa açtı: tags

etiketleri örneği açtı:

1 5 6 space between them

ve ben bu gibi görünen bir etiket tablo var

Tablo adı: bt_tags

Tablo fileds: tid,tag

Şimdi sorun:

Hikaye tablodaki tüm alanları almak için while döngüsü kullanarak, sayfa her öyküleri "ayrıntı göstermek için 1 sorgu kullanır ama tag isimlerini göstermek için, ben adlarını bulmak için başka bir tablo sorgulamak gerekir, biz kimlikleri hikaye tablosunda sakladığınız

Şimdi döngü etiket isimleri göstermek için ise i arasında döngü için kullanılan ama im emin sayfa sorguları azaltmak için daha iyi bir yolu var

veritabanı tablosundaki bir şey değiştirmek için llowed

how can i improve this script and show tag's names without using *for loop *

1 Cevap

Bir katılmak gibi geliyor size yardımcı olabilir

select s.*,
  b.tag,
  b.slug
from story_table s
  left join bt_tags b on b.tid in s.tags

Join Syntax dev.mysql.com at