İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Tek sorguda birden fazla tablo kullanmak

ReksNet

0
İyinet Üyesi
Katılım
11 Temmuz 2005
Mesajlar
415
Reaction score
0
Merhaba,

2 adet tablom var.

1- konular
2- mesajlar

Bir foruma sahibim.Konunun ID'si ne ise, mesajlar kısmındaki "sira" ile eşleştiriyorum.Böylece o konuya ait mesajları bir sayfada listeleyebiliyorum.Bir nevi "mesajlar.sira ile konular.id birbirlerine linkli gibiler".

PHP ile çok haşır neşir olan arkadaşlar bilirler bu durumu.Konular bir tabloda tutulur, mesajlar farklı bir tabloda.


PHP:
$baslik = "merhaba dunya";
$sorgu = "SELECT id FROM konular WHERE `baslik`='$baslik'";
$sorgulama = mysql_query($sorgu);
$kayit=mysql_fetch_array($sorgulama);
$id=$kayit["id"];

# konu id'sini aliyorum.daha sonra mesajlar ile eslestiriyorum.

$listele = mysql_query("SELECT * FROM mesajlar WHERE sira = '$id'") or die(mysql_error());
while ($kayit=mysql_fetch_array($listele)) {
# mesajlar burada listeleniyor
}
}

Ben bunu iki sorgu ile yapmaktansa, tek sorguya indirgeyip daha çok performans almak istiyorum.Yani while a giren sorguda hem "konulardaki baslik $q ya eşitse, ilgili konulardaki ID'yi al ve mesajlar tablosundaki sira ile eşleşen kayıtları listele" diyebilmeliyim sql'e.

Bir türlü başaramadım.Defalarca denedim.Son 24 saatimi bu işe verdim.
 

forumselcuk

0
İyinet Üyesi
Katılım
26 Şubat 2006
Mesajlar
713
Reaction score
1
Konum
Selçuk Üniversi
hım
senin dediğin inner join oluyor
ama tabloları bağlaman lazım
php bilmediğim için kod yazamıyacağım ama böyle bişey mümkün
 

ReksNet

0
İyinet Üyesi
Katılım
11 Temmuz 2005
Mesajlar
415
Reaction score
0
evet ben de öyle duydum fakat join'ide araştırmama rağmen beceremedim.
 

nedium

0
İyinet Üyesi
Katılım
4 Şubat 2006
Mesajlar
212
Reaction score
0
selam
mssqlde bu şekilde oluyor, umarım mysqlde de çalışır...

SELECT mesajlar.*
FROM konular INNER JOIN mesajlar ON konular.id = mesajlar.sira
WHERE (konular.baslik= 'merhaba dunya')
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Joinsiz asagidaki sekilde yapilir.

SELECT * FROM mesajlar, konular WHERE konular.baslik='$baslik' AND mesajlar.sira= konular.id;
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst