merhabalar arkadaşlar şimdi elimde 2 tane tablo var
birincisinin yapısı şöyle (tablo adı uyeler):
id kullaniciadi puan
2 fatal 3
5 deneme 4
7 r10 5
ikinci tablonun yapısı ise şöyle (tablo adı eslesenler) :
id # eslesen_id # eslesen_kullanici # eslesilen_id # eslesilen_kullanici
1 2 fatal 7 r10
şimdi bir takım sql sorgularıyla uyeler tablosundan üyeleri birbiriyle eşleştirip eslesenler tablosuna insert ediyorum. ama bu işlemi 3 sql sorgusuyla yapıyorum şöyleki : önce
$sorgu=mysql_query("select * from uyeler where kullaniciadi != 'fatal' and puan>'3' ");
sorgusuyla kriterlerime uygun kendi kullanıcı adım dışındaki üyeleri çekiyorum, sonra mysql_fetch_array yapıyorum
while($bulunan=mysql_fetch_array($sorgu))
daha sonra ise bu üyeyle daha önceden eşleşilmişmi diye eslesenler tablosuna farklı bir sql sorgusu daha yapıyorum
$bak=mysql_query("select * from eslesenler where eslesen_kullanici='fatal' and eslesen_id='2' and eslesilen_id='".$bulunan["id"]."' and eslesilen_kullanici='".$bulunan["kullaniciadi"]."' ");
$say=mysql_num_rows($bak);
eğer $say==0 ise eslesenler tablosuna insert ediyorum 1 ise hiç bir işlem yaptırmıyorum.
Şimdi gelelim sorunuma ben bu işlemleri birden fazla sql sorgusu kullanarak yapıyorum istediğim şey ise bu işi tek sql sorgusuyla nasıl yapabilirim acaba ? şimdiden herkese teşekkürler
mysql yardım
2
●395
- 21-10-2008, 19:27:48Yazdıklarının sadece başlangıç kısmını okudum, iki veya daha fazla tabloyu tek sorgu ile birbirine bağlamak istiyorsan join kullanmalısın.
MySQL :: MySQL 5.0 Reference Manual :: 12.2.8.1 JOIN Syntax - 22-10-2008, 03:20:51Kimlik doğrulama veya yönetimden onay bekliyor.
select u.*, e.* from eslesenler as e, uyeler as u where u.kullaniciadi != 'fatal' and u.puan>'3' and e.eslesilen_kullanici = u.kullaniciadi and e.eslesen_kullanici='fatal'
isa ne istediğini tam anlıyamadım ama
1 - eslesen ile eslenen aynı olmasın diyosun
2- fatal kullanıcı adı ile daha önce eslenmemiş kullanıcı olsun diyosun
3- puanı da 3 den büyük olsun diyosun
bu sorgu işini görür eğer böyle ise.
bu işleri yaparken "puan, eslesilen_kullanici, kullaniciadi" bunları index. yap. sorguyu da explain ettir. sorgu sunucuyu s..mesin. index optimizasyonu yapmak lazım.
PHP ve SQL bilmiyorum ama işini görürse yukarıdakileri kullanırsın