Unisciti al tavolo con se stesso , utilizzando il parent
colonna per collegarsi al cat_id del genitore.
SELECT c1.cat_id as childID, c1.cat_name ChildName, c2.cat_name as ParentName
from category c1
LEFT OUTER JOIN category c2
ON c1.parent = c2.cat_id
- Attenzione:poiché alcuni elementi non hanno genitori (
NULL
), ho inserito unLEFT OUTER JOIN
quindi vengono visualizzate anche quelle righe. Se non lo desideri, usa unJOIN
invece diLEFT OUTER JOIN
. - Puoi anche mostrare le righe, ma visualizzare qualcos'altro (vuoto o atext o ...) invece del
NULL
utilizzandoCOALESCE
. - Puoi considerare il risultato come una (grande) nuova tabella, quindi puoi aggiungere clausole WHERE come fai di solito, ad esempio filtrando il nome del genitore:
WHERE c2.cat_name = 'test2'