Merhaba arkadaşlar. Soru şu:
2 tablo var.
1. siparis
2. odeme
siparis tablosundaki "odemeNo" diye bir alanda o siparişe ait ödemenin odeme tablosundaki "no" alanının değeri var.
odeme tablosunda "durum" diye bir alanda ödemenin yapılıp yapılmadığı tutuluyor. (0=ödenmedi, 1=ödendi)
Daha anlaşılır olması için basitçe tablo yapısını vereyim:
siparis tablosu: no, odemeNo
odeme tablosu: no, durum
Benim istediğim siparis tablosundaki ödemesi yapılmış siparişleri SELECT ile getirmek.
Yani "odemeNo" alanına bakacak, odeme tablosundan "durum" alanına bakacak 1 ise siparişi getirecek.
Bunu tek sql sorgusu ile yapmak mümkün müdür? Yardımcı olacaklara şimdiden teşekkürler...
Böyle bir sql sorgusu?
6
●420
- 01-10-2010, 18:22:37
$sql=mysql_query("select siparis.no as siparisno from siparis left join odeme on (siparis.odemeNo=odeme.no) where odeme.durum=1");İşini görür herhalde
- 01-10-2010, 18:35:53Kimlik doğrulama veya yönetimden onay bekliyor.
$sorgu = mysql_query("SELECT s.no AS odenmis FROM siparis AS s INNER JOIN odeme AS o ON (o.no = s.odemeNo) WHERE o.durum = 1"); $odenmisler = array(); while ($satir = mysql_fetch_assoc($sorgu)) $odenmisler[] = $satir['odenmis']; mysql_free_result($sorgu); foreach ($odenmisler as $odenmis) echo $odenmis, '<br />'; - 02-10-2010, 22:09:09INNER JOIN, sadece koşula uyan satırları getirir. LEFT JOIN ise, tüm sonuçları. Bu nedenle LEFT JOIN'de beklediğinizden daha fazla sonuçlar elde edebilirsiniz.yemekim adlı üyeden alıntı: mesajı görüntüle