v2.5.2
Giriş yap

PHP inner join hakkında

hakan16
766 defa görüntülendi

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 }  ?>
?>
onlywhatchess
1384 gün önce

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.