veritabanınız postgresql olsaydı,
WITH RECURSIVE tumebeveynler AS
(
SELECT * FROM tablo WHERE id = 1
UNION ALL
SELECT c.*
FROM tablo AS c
JOIN tumebeveynler AS tc ON c.id IN ( tc.anneid, tc.babaid )
)
SELECT * FROM tumebeveynler;
şeklinde, bir kişinin ebeveynlerini ve ebeveynlerinin ebeveynlerini
çekebilirdiniz. Ama dedigim gibi mysql yanıt veremeyebilir bu konuda.
selamlar,
Özkan KIRIK
ePati Bilişim Teknolojileri
http://www.epati.com.tr/
2011/10/18 Zekeriya Bozkurt <[email protected]>:
> Özkan Bey aynen dediğiniz gibi herhangi bir alt veya üst sınır belirli
> değil.
>
> Benden istenen herhangi X bir ID ye at tüm çocukları ve onların alt
> çocukları gibi bir liste ilk etapta.
> Ancak bu listenin tam tersi de sözkonusu. Yani X bir ID nin geriye doğru
> ataları kimler gibi bir liste.
>
>
>> Date: Tue, 18 Oct 2011 15:58:16 +0300
>> From: [email protected]
>> To: [email protected]
>> Subject: [Linux-programlama] Re: Soy Kütüğü - SQL Cümleciği -
>>
>> İstenen çıktı bir aile bireyinden itibaren tüm çocukları ve onların
>> alt çocukları gibi bir çıktı ise,
>> ve nest edilen bu tabloların bir derinlik sınırı olmayacaksa, mysql'in
>> cevap verebileceğini sanmıyorum.
>> bu işi Postgresql CTE ile sorgulayabilirsiniz.
>>
>> 2011/10/18 Özkan KIRIK <[email protected]>:
>> > LEFT JOIN ile tabloyu kendisi ile join edebilirsiniz, Bu sayede
>> > plsql'e iht iyaç duyulmadan yapılabilir.
>> >
>> > SELECT
>> > cocuk.*, anne.*, baba.*
>> > FROM
>> > tablo cocuk
>> > LEFT JOIN tablo anne ON cocuk.anneid = anne.id
>> > LEFT JOIN tablo baba ON cocuk.babaid = baba.id
>> >
>> >
>> > ilgili tablonun indexlerinin de sağlıklı olması gerekiyor. aksi halde
>> > çok yavaş yanıt alabilirsiniz.
>> >
>> > Özkan KIRIK
>> > ePati Bilişm Teknolojileri
>> > http://www.epati.com.tr
>> >
>> > 2011/10/18 Baris CUHADAR <[email protected]>:
>> >> Çocuk ve ebeveynler ayrı sütunlar mı?
>> >>
>> >> On 10/18/2011 03:30 PM, Zekeriya Bozkurt wrote:
>> >>> Selamlar;
>> >>>
>> >>> Elimde aşağıdaki şekilde olan 80000 satırlık kayıtlar var. Bir tür soy
>> >>> kütüğüne benziyor.
>> >>>
>> >> > ID --- AnneID --- BabaID
>> >>> -----------------------------------
>> >>> 1001 - 5 - null
>> >>> 1002 - 5 - null
>> >>> 1003 - 5 - 8
>> >>> 1010 - 1001 - 9
>> >>> 1020 - 1010 - 11
>> >>> 1050 - 1001 - 12
>> >>> 1080 - 1011 - 1003
>> >>> 9 - null - null
>> >>> 11 - 5 - 2
>> >>> ..........
>> >>>
>> >>>
>> >>> Bu şekilde olan kayıtlardan ID den yola çıkarak (belirli bir ID ye
>> >>> bağlı olan) parent ları ve cocukları içeren bir sonuç üretecek bir SQL
>> >>> cümleciği ihtiyacım var. Bunu tek bir SQL cümleciği ile yapabilir
>> >>> miyiz ? Bu tarz bir listeyi elde etme konusunda tecrübeli olanlar
>> >>> tecrübelerini bizimle paylaşabilirler mi acaba ? (Database Mysql)
>> >>>< br>> >>> İyi Çalışmalar;
>> >>>
>> >>> Zekeriya BOZKURT
>> >>>
>> >>> PS: SQL bilgimin iyi olmadığını belirteyim. Ancak bu listeyi SQL ile
>> >>> almam gerekiyor. Çünkü alınan liste tekrardan 2. ve 3. işleme tabi
>> >>> tutulacak.
>> >> _______________________________________________
>> >> Linux-programlama mailing list
>> >> [email protected]
>> >> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> >> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>> >>
>> >
>> _______________________________________________
>> Linux-programlama mailing list
>> [email protected]
>> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
>> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
>
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php