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 JOINquindi vengono visualizzate anche quelle righe. Se non lo desideri, usa unJOINinvece diLEFT OUTER JOIN. - Puoi anche mostrare le righe, ma visualizzare qualcos'altro (vuoto o atext o ...) invece del
NULLutilizzandoCOALESCE. - 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'