• Bu site çerezler kullanır. Bu siteyi kullanmaya devam ederek çerez kullanımımızı kabul etmiş olursunuz. Daha fazla bilgi edin.

Mysql Farklı Tablolardaki Sutunları Tek Sutunda Birleştirmek

Konuyu Okuyan Kişiler (0)

LadyArch3r

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
113
Beğeniler
0
#1
2 farklı tablom var .Haberler ve Duyurular tablosu ikisindeki haber_adi , haber_yazi ve duyuru_adi, duyuru_yazi sutunlarını tek veri_adi ve veri_yazi olarak birleştirip listelemek istiyorum nasıl yapabilirim.
 

LadyArch3r

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
113
Beğeniler
0
#3
tek sorgu ile inner join, left join ile yapılıyor ama denemeler yaptım yapamadım.
 

EuroTurk

webmaster.tc
Katılım
19 Eki 2012
Mesajlar
22
Beğeniler
0
#8
SELECT * FROM haberler INNER JOIN duyurular ON haberler.id=duyurular.id
ile iki tabloyu birleştirebilirsin.
 

EuroTurk

webmaster.tc
Katılım
19 Eki 2012
Mesajlar
22
Beğeniler
0
#10
Veriyi çekerken nasıl çekiyoruz? Bir makale hazırlarmısınız acaba bunun için ?
iki tabloyu birleştirmiş olduk yani olaya sanal 1 tablo oluşturdk çekerken döngüye sokup normal çektiğiğimiz gibi verileri istediğin gibi kullanabilirsin.

a tablosu + b tablosu => sanal c tablosu
--------- ---------
id id
 

cayocagi

webmaster.tc
Katılım
23 Kas 2012
Mesajlar
54
Beğeniler
0
#11
ben de bu yöntemi kullandım uzun zaman boyunca yalnız hem internetten okuduklarım hem de kendi tecrübelerim bunun sisteme ağır bir yük getirdiğini gösterdi.

Bunun yerine bir cron job oluşturup belirli aralıklarla iki tabloyu tek bir tabloda konsolide edecek veya en azından keyleri tek bir tabloda toplatabilecek bir sistem kurmanın daha mantıklı olabileceğini düşünüyorum.

Zira join kullanımı büyük bir mysql veritabanında ciddi performans düşüşüne sebep oluyor.
 

aykt35

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
230
Beğeniler
0
Yaş
25
Konum
izmir
#12
Bilmiyorum ne kadar doğruda geçende bizim vize sınavında hoca böle bi soru sormuştu bu tarz bi cevap vermiştim. Yanlış olabilir :) Ama böle yazmıştım.

Select * from

haberler inner join duyurular

on haber_adi = duyuru_adi as haberler

on haber_yazi = duyuru_yazi as duyurular

select haberler.haberler, haberler.duyurular from
 

LadyArch3r

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
113
Beğeniler
0
#13
Pek bir performans düşmesi yaratmayacağını düşünüyorum innerjoinin .

Cronjob için çok uğraşmak gerek boşuna zaman kaybı
 

cayocagi

webmaster.tc
Katılım
23 Kas 2012
Mesajlar
54
Beğeniler
0
#15
Pek bir performans düşmesi yaratmayacağını düşünüyorum innerjoinin .

Cronjob için çok uğraşmak gerek boşuna zaman kaybı
dediğim gibi veritabanı boyutuna göre değişir, yabancı bir arkadaş bu konuyla ilgili bir test yapmış: şuradan bir incelemenizi tavsiye ederim: http://www.andrewrollins.com/2009/06/21/mysql-join-performance/


Bu arada belirtmem lazım ki ben join fonksiyonunu gerçekten çok büyük veritabanlarında kullandım (5-10 GB), o açıdan küçük boyutlu bir veritabanında belirttiğiniz gibi farkedilir bir performans düşmesi yaşanacağını sanmıyorum. Konu hakkındaki tecrübemi paylaşmak istedim.
 

LadyArch3r

webmaster.tc
Katılım
6 Ağu 2012
Mesajlar
113
Beğeniler
0
#16
dediğim gibi veritabanı boyutuna göre değişir, yabancı bir arkadaş bu konuyla ilgili bir test yapmış: şuradan bir incelemenizi tavsiye ederim: MySQL Join Performance | Andrew Rollins


Bu arada belirtmem lazım ki ben join fonksiyonunu gerçekten çok büyük veritabanlarında kullandım (5-10 GB), o açıdan küçük boyutlu bir veritabanında belirttiğiniz gibi farkedilir bir performans düşmesi yaşanacağını sanmıyorum. Konu hakkındaki tecrübemi paylaşmak istedim.
Teşekkürler bilgilerinizi aktardığınız için.Ben anlık hiti 50 yi geçmeyecek bir sistemde kullanacağım.