Arkadaşlar merhaba. Şu şekilde 2 tablo yapım var; categories id | parent_id | heading | 1 | 0 | Category 1 2 | 1 | Category 1.1 3 | 1 | Category 1.2 4 | 3 | Category 1.2.1 products id | category_id | heading | 1 | 1 | Product 1 2 | 3 | Product 2 3 | 3 | Product 3 4 | 4 | Product 4 products tablosunda ki category_id sütünundaki değerler categories tablosun da ki id sütunundaki değerlerle eşleşiyor. Bir kaç sorgu ve php müdahalesi ile istediğim sonucu elde ediyorum aslında fakat esas yapmak istediğim bu işlemi tek Sql sorgusunda halledebilmek. Şurada kodu var bakabilirsin veya kodu şu diye cevap vermektense şu şekilde ve şunları kullanarak yapabilirsin şeklinde cevaplar beni daha mutlu eder. Yani işin algoritmik olarak yapısını merak ediyorum. Bir kaç saattir düşünüyorum fakat henüz bir bağlantı kurmadım Sql konusunda fazla bilgiye sahip olmadığımdan aslında tam olarak nelere bakmam gerektiğini bilemiyorum. categories tablosunun maksimum derinliği 1.2.1 yani 2 alt kategorisinin alt kategori de olacak şekilde daha fazla derinleşmeyecek. İstediğim 1. ve 2. derinlikteki categories sütununu çağırdığım da parent_id ile bu sütuna bağlı olan tüm alt kategorilere ekli product tablosunda yer alan verileri listelemek. 3. derinlikte ki tıkladığında sadece ona aitler listelenecek bu kısımda herhangi bir problemim yok. 1. ve 2. derinliktekiler de tek Sql sorgusu ile bu iş nasıl yapılabilir? Biraz uzun ve karmaşık oldu sanırım ama anlayan arkadaşlar yardımcı olursa memnun olurum. Şimdiden teşekkürler.

2 seviye için aşağıdaki mantığı kullanabilrisin, daha derin seviye için, bir o kadar daha JOIN kullanman, ya da php veya stored procedure yoluyla çözmen gerekiyor. SELECT p. heading as urun, c1. heading as alt_kategori, c2. heading as ust_kategori FROM products p INNER JOIN categories c1 ON c1. id=p. category_id LEFT OUTER JOIN categories c2 ON c2. id=c1. parent_id

Angelo Aslında cevap bulamayınca php ile işimi halletmiştim ama mantığını anlayabilmek açısından verdiğin örnek için yinede teşekkür ederim.