Drupal 5.x kategóriákhoz PgSQL lekérdezések

Alább összegyűjtöttünk pár PgSQL lekérdezést, amelyekkel a kategóriáinkról (taxonomy) nyerhetünk plusz információkat közvetlenül az adatbázisból.

1. Kategóriák listája (2 szintet mutat csak)
SELECT 
v.name AS vocabulary,
CASE WHEN t2.name IS NULL THEN t1.name ELSE t2.name END AS name,
CASE WHEN t2.name IS NULL THEN '' ELSE t1.name END AS child
FROM term_data t1
LEFT JOIN vocabulary v ON v.vid = t1.vid
LEFT JOIN term_data t2 ON t2.tid = (SELECT parent FROM term_hierarchy WHERE tid = t1.tid)
ORDER BY v.name, CASE WHEN t2.name IS NULL THEN t1.name ELSE t2.name END, CASE WHEN t2.name IS NULL THEN '' ELSE t1.name END

 

2. Kategóriák listája a hozzárendelt node-ok számával

SELECT 
v.name AS vocabulary,
CASE WHEN t2.name IS NULL THEN t1.name ELSE t2.name END AS name,
CASE WHEN t2.name IS NULL THEN '' ELSE t1.name END AS child,
count(tn.tid) as node_count
FROM term_data t1
LEFT JOIN vocabulary v ON v.vid = t1.vid
LEFT JOIN term_data t2 ON t2.tid = (SELECT parent FROM term_hierarchy WHERE tid = t1.tid)
LEFT JOIN term_node tn ON tn.tid = t1.tid
GROUP BY v.name, t2.name, t1.name
ORDER BY v.name, CASE WHEN t2.name IS NULL THEN t1.name ELSE t2.name END, CASE WHEN t2.name IS NULL THEN '' ELSE t1.name END