Umarım sorunu yanlış anlamamışımdır.

Şuan ben girdim ve session içerisinde benim id m 21 diye var sayıyorum başlamadan önce benim sepetimde olan ama ödemesini yapmadığım ürünleri almam gerekiyor.


Sepet içindeki ürün id lerini alacağım diyorum

(select sepet.urun_id from sepet)
ve sepet ile hesaplar kolonunu birleştiriyorum
(INNER JOIN hesaplar)
birleştirme koşulu olarak sepetteki ürün id ve hesaplar da ki hesap kategori id yi ve sepetteki kullanıcı id ile hesaplar da ki hesap id yi eşliyorum böylece sepete eklenmiş ama alınmış alınmamış tüm dataları elde ediyorum
(on sepet.urun_id = hesaplar.hesap_kategori_id and sepet.kullanici_id = hesaplar.hesap_id)
şimdi tüm veriyi filtrelemek için koşulumu yazıyorum kullanıcı id 21 ve sipariş tamamlanmamış olanlar lazım bize
(where sepet.kullanici_id = 21 and hesaplar.hesap_durumu = 0)
tüm bu işlemleri tamamladıktan sonra aşağıdaki sql i elde ediyoruz ve iç içe sql yazacağımız için bunu kenarda tutuyoruz
select sepet.urun_id from sepet INNER JOIN hesaplar on sepet.urun_id = hesaplar.hesap_kategori_id and sepet.kullanici_id = hesaplar.hesap_id where sepet.kullanici_id = 21 and hesaplar.hesap_durumu = 0
şimdi bizden önce aynı ürünler için sipariş girmiş ve tamamlamış olanları yakalayacağız.

tekrar sepet kolonunu çağırıyor ve içerisine hesapları dahil ediyoruz

Select * from sepet INNER JOIN hesaplar
her iki kolonu birleştirmenin şartı olarak sepetler içerisindeki ürün id ve hesaplar içerisindeki hesap kategori id yi eşitliyoruz ayrıca hesap durumu 1 olanları yani ödenmiş olanları istiyoruz

on sepet.urun_id = hesaplar.hesap_kategori_id and hesaplar.hesap_durumu = 1
daha sonra tekrar koşulumuzu yazıyoruz şuanda online olan kullanıcının sepetindeki ürünleri karşılaştırmamız gerekiyor koşul iç içe sql yapısıyla birlikte aşağıda ki gibi

where sepet.urun_id IN (select sepet.urun_id from sepet INNER JOIN hesaplar on sepet.urun_id = hesaplar.hesap_kategori_id and sepet.kullanici_id = hesaplar.hesap_id where sepet.kullanici_id = 21 and hesaplar.hesap_durumu = 0)

Tüm bunları işledikten sonra elde etmiş olmamız gereken sql aşağıdaki gibidir
Select * from sepet INNER JOIN hesaplar on sepet.urun_id = hesaplar.hesap_kategori_id and hesaplar.hesap_durumu = 1 where sepet.urun_id IN (select sepet.urun_id from sepet INNER JOIN hesaplar on sepet.urun_id = hesaplar.hesap_kategori_id and sepet.kullanici_id = hesaplar.hesap_id where sepet.kullanici_id = 21 and hesaplar.hesap_durumu = 0)
Doğrudan bu r10 konsolu içerisinde yazdım umarım hatalı yazmamışımdır yazdığım kodun mantığı şuan sessionu olan kullanıcının sepetindeki ödenmemiş ürünleri başkaları ödemiş ise döndürmek

Ayrıca afiyet olsun