Farklı tablolardan girişleri toplamak için SQL sorgusu - UNION'e bir alternatif gerekiyor

4 Cevap php

Ben tabloları bir dizi temel bilgileri almak için bir sql sorgusu koşuyorum. Son güncelleme tarihi alana göre sıralanır. Onun korkunç zor ve yerine UNION yan tümcesini kullanarak bir alternatif olup olmadığını düşünüyorum ... Ben PHP MYSQL çalışıyorum.

Aslında haber, makaleler, fotoğraflar, etkinlikler vb içeren bir kaç tablo var ve bir basit göstermek için bir sorgu hepsini toplamak gerekir - yeni şey web sitesi tür eklendi nedir.

4 Cevap

Ardından haber, makale, fotoğraf ve olayların her n son getir, sen son n ürün istiyorsanız, ve sıralama içinde - belki oldukça MySQL PHP daha bunu PHP (Eğer son n Her Açıkçası gerekir, ve sonra PHP veri kümesini süs olacak). Bu muhtemelen UNION onlar farklı veri öğelerinin olması çok olasıdır verilmiş olanlar birleştirerek daha kolaydır.

I UNION bir alternatif farkında değilim ne istediğinizi yapar, ve umarım bu çekimlerin çok pahalı olmayacak. Kesinlikle bu olsa profile akıllıca olacaktır.

Eğer sorguda Join kullanmak eğer yabancı anahtarlar ile ilgili değişik tablolardan verileri seçebilirsiniz.

Performans ile yanlış bir şey yok, bir UNION (Eğer gerçekten releated varlıklar katılmadan bahsediyoruz sürece (yani yabancı anahtar ilişkileri sahip olanlar).

BİRLİĞİ yinelenen girdileri kaldırmak için bir sıralama yapmak gibi ANCAK, bir UNION ALL yerine sadece UNION kullanmak isteyebilirsiniz.

Başka bir açıdan bu bakabilirsiniz: kesinlikle güncel bilgiler gerekiyor? (An birisi görünmelidir yeni bilgileri girer)

Değilse, size ihtiyacınız biçiminde (önbellek olarak hizmet) içinde sorgu sonuçlarını tutan bir tablo var ve bu tabloya her 5 dakika kadar güncelleyebilirsiniz. Eğer arka planda birkaç güncellemeleri gibi çalıştırmak güncellemeleri olabilir gibi Sonra sorgu sorunu, önemsiz hale gelir.