DB sorgusu ile yardımcı

3 Cevap php

Yani bir kategori tablo kurdunuz. Bu tablo içinde "id", "ad", "fk_parent_cat_id" (ve daha fazla) denilen bir alan vardır. "Fk_parent_cat_id" temelde sadece bir üst kategoriye belirli bir kategori bağlar.

Tamam. Ben kategoriye bilgi kapmak, ancak AYRICA ana kategoriye bilgi kapmak bir sorgu yapmak nasıl söyleniyor. Benim ana endişe şu anda ben sadece güzel ebeveyn kimliği, kapma, ama ben ana kategorinin adını tanımlamak için başka bir sorgu çalıştırmak zorunda istemiyorum olmasıdır.

Normal sorgu sonucu gibi bir şey olurdu:

id: 2
name: category 1
fk_parent_cat_id: 1

Ve, ben sonuç olmak istiyorum

id: 2
name: category 1
fk_parent_cat_id: 1
fk_parent_cat_name: top category

Bu soru mantıklı mı? Bazı tür katılmak ile bunu yapmanın bir yolu var rakam ...

Herhangi inptut için teşekkürler!

3 Cevap

Sen bir INNER JOIN ile gerçekleştirebilirsiniz. Sadece tablo ve yabancı anahtar sütun adı (ParentCategory tablodaki sütun adları ile ilgili hiçbir bilgi verdi beri) onlar aslında veritabanında ne sağlamak. Sadece için sorgudaki tablo adlarını diğer ad gerekir - Eğer aynı masada karşı kendini katılmadan yanlış bir şey olduğunu, tek bir kategori tablosu (yani kategoriler tek bir tabloda saklanır) varsa unutmayın onlar belirsiz olmadığından emin olun.

SELECT
     C.id
,   C.name
,   C.category
,   P.parent_cat_name	
FROM
    ChildCategory C
INNER JOIN
    ParentCategory P
ON
    C.fk_parent_cat_id = P.parent_cat_id

Sorguda bir kendini katılmak kullanın.

SELECT t.id, t.name, t.fk_parent_cat_id, p.name fk_parent_cat_name
FROM table t INNER JOIN
table p on t.fk_parent_cat_id = p.id

Ben doğru anlamak varsayarak, bu temel bir birleşim

SELECT id, fk_parent_cat_id, fk_parent_cat_name 
FROM table, parent_table 
WHERE table.id = parent_table.id;

Bunları yoktu çünkü doğru olanlarla tablo isimlerini düzeltmek ve bu da ana tabloda birincil anahtar varsayar gibi iyi 'id' denir.

Ben yanlış değilim, bir açıklama beni düzeltin.