Merhaba,
Yapmak istediğim sorgu şu işlemi yapmalı;
Ana - detay yapım var örneğin cariKartlar ve Carihareketler istediğim şey
CariHakraketi olan CariHesapKartları nı listelemek. Joinle yapmaya çalıştım ama olmadı.
Kullandığım kod, çalışıyor fakat istediğim sonucu döndürmüyor.
İçiçe select sorgusu ile alabilirsin volkan... İçteki sorguda hareket tablosunu sorgula HAREKET.CARI_ID ile HESAPKART.CARI_ID eşit olanlara göre dıştaki sorguyu listelet... Bir de Hareket teki kayıtları için not null kontrolü ekle.. Joinle olmaz..
select * from hesapkart WHERE CARI_ID IN(SELECT HAREKET.CARI_ID FROM HESAPKART,HAREKET WHERE HESAPKART.CARI_ID=HAREKET.CARI_ID AND HAREKET.CARI_ID IS NOT NULL)
gibi...
Örnek yazdım koda güvenme...
Sevgiler...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
Hedef master tablonun listelenmesi ve Detay tabloda karşılık kayıtı olan satırlar ise; ortak key alanı ne ise onun Detay tabloda olup olmadığına bakılacak bir sql cümlesi yazılmalı; ayrıca detay tabloda belirli başka kriterlere de (tarih gibi) bakılabilir..
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ... yazdığım SQL kodu
Bu neden olmuyor çok basit bir Syntax oysaki desteklemiyor felan diyor sizce olaiblirmi?
Teşekkürler.
select * from hesapkart WHERE hes_id IN(SELECT HAREKET.CARI_ID FROM HESAPKART,HAREKET WHERE HESAPKART.HES_ID=HAREKET.CARI_ID AND HAREKET.CARI_ID IS NOT NULL)
MySQL de farklı kullanımı vardır belki... IN Syntax ını bi incelesene MySQL de..
Sevgiler..
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
MySQL de subquery tam olarak 4.1 sürümünde itibaren geliyor.
Bu sebeple belki sizdeki sürüm subquery i desteklemeiyor olabilir.
İlk yazdığınız sql deki insnull yerine ( belki orda null değilde boş bir ifade tutuluyordur) length(alan) > 1 veya alan > 0 gibi bir ifade ile denerseniz bi ihtimal çalıştırabilir.
select * from hesapkart
where hes_id in (select cari_id from hareket where cari_id = hesapkart.hes_id)
Bu koddaki içteki select te hesapkart tablosunun cari_id si ile hareketin cari_ıd si eşitlenmiş.. Merak ettiğim şu içteki select sorgusunda hesapkart tablosu referans geçilmediği halde hesapkartın cari_id sini yakalayabilir mi ? Çünkü iç select te hesapkart a dair hiç bir referans yok. Nasıl yakalayacak ? Ben yakalayamaz diye ilk verdiğim kodda hesapkartı tablo olarak referans göstermiştim ama rşimşek hocam göstermemiş.. Denemedim ama merak ettim..
Sevgiler..
En son sair tarafından 03 Eyl 2004 10:16 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz
kodu izninle biraz sadeleştireyim her şey ayan beyan ortaya çıksın.
İçteki select te tekrardan hesapkart demene gerek yok. Eğer dıştaki hesapkart tablosunu içteki select te de kulanacaksan ya ismiyle ya da hk diye bir alias verip kullanmalısın.
Güzel... Bunu baştan niye demiyorsun be Hocam. Haybeye yavaşlatmışız programları...
Geçip gideriz bizde ağızsız,dilsiz ve sorgusuz
İstanbul gibi düşeriz iki kıtaya birden...
En aşağılık düş, en büyük sevdadan belki
Erkek ölümler; bir uzun iç çekişle büyür göğsümüz