Mysql
 sql >> Database >  >> RDS >> Mysql

ottenere il nome genitore della categoria figlio con una singola query in mysql

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 un LEFT OUTER JOIN quindi vengono visualizzate anche quelle righe. Se non lo desideri, usa un JOIN invece di LEFT OUTER JOIN .
  • Puoi anche mostrare le righe, ma visualizzare qualcos'altro (vuoto o atext o ...) invece del NULL utilizzando COALESCE .
  • 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'