PHP inner join hakkında
Merhaba 3 adet tablom var hesaplar, gelir ve gider. Örnek olarak kullanıcı id'si 1 olanların hangi hesaplarının olduğunu ve o hesaplara ait gelir ve gider tablosundaki verilerini göstermek istiyorum. Hesaplar tablosunda o kullanıcıya ait hesaplar var yani toplam_para=sum(gelir)-sum(gider) yapmak istiyorum.
<?php
<?php
$gelir=$db->prepare("select hesap_id, hesap_adi, toplam_para, gelir_tutari, gider_tutari from hesaplar inner join gelir on hesaplar.kullanici_id=gelir.kullanici_id
inner join gider on hesaplar.kullanici_id=gider.kullanici_id where hesaplar.kullanici_id=$id GROUP BY hesaplar.hesap_adi
");
$gelir->execute();
$gelecek=$gelir->fetchAll();
print_r($gelecek);
foreach($gelecek as $hesaps){ ?>
<li class="hesap_listesi_hesaplar_hesap">
<a href="gecmis.php">
<span class="hesap_title"><?php echo ucfirst_tr($hesaps['hesap_adi']); ?></span>
<span class="hesap_bakiye"><?php echo number_format($hesaps['toplam_para'], 0, ",",".")." ₺";?></span>
</a>
</li>
<?php } ?>
?>
SQL
Attığım sql'i indir,
Yeni bir veritabanı oluşutur,
Oluşan veritabanına tıkla,
İçeri aktar'a tıkla,
Dosya seç'e tıkla,
Aşağıdaki git'e tıkla
Aşağıdaki sorguyu çalıştırırsan
SELECT u.u_id, u.ad 'Müşteri Adı', ie.miktar 'İşlem Tutarı', ie.tarih 'İşlem Tarihi', a.ad 'Banka Adı' FROM `users` u JOIN income_expense ie ON u.u_id = ie.u_id JOIN accounts a ON a.a_id = ie.a_id WHERE u.u_id = 1
Çıktısı:
Sorgusuz çalışan hali:
Biraz kayıt eklersen üzerinde her türlü işlemi yapabilirsin, umarım doğru anlamışımdır.