Io vorrei rimuovere da un vocabolario i termini taxonomy che non sono associati ad alcun nodo, quindi che possono considerardi dei termini orfani.
Al momento quello che ho inquadrato è che esiste il vid che identifica il vocabolario di apparteneza dei termini ed il tid che identifica i termini di tassonomia.
Ed ho preparato questa query su due tabelle, però non sono sicuro del suo corretto funzionamento.
SELECT *
FROM `term_data` , `term_node`
WHERE `term_data`.`tid` != `term_node`.`tid`
AND `term_data`.`vid` =15
LIMIT 0 , 10000
Mi aiutate ad impostare una query specifica?
Vi informo anche che dopo averli rintracciati tutti, io questi termini li voglio rimuovere dalla tabella o tabelle in cui si trovano.
ciao, purtroppo una semplice query non basta, le join che puoi realizzare permettono di estrarre glielementi associati, ma non quelli non associati, per cui devi procedere per step, io procederei così:
tieni però presente che se hai dei termini non collegati ad un nodo, non necessariamente sono dei termini "inutili", potrebbero essere utilizzati in altri contesti.
Ciao
Marco
--
My blog
Working at @agavee
Io creo siti web, clonando il DB di siti web già esistenti.
Visto che questo procedimento è di una efficacia esterma, sto cercando alcuni punti utili per la pulizia del data base.
Questa discussione è nata dal fatto di non volere rimuovere sempre un dato vocabolario per poi ricrearlo uguale e dover riassociarlo tra i vari moduli che lo utilizzato (nodewords, term_display, feeds, ecc ecc).
Di conseguenza poter rimuovere tutti i termini con una query sarebbe una cosa molto pratica e comoda. In più se sono già stati creni nuovi nodi con nuovi termini, poter rimuovere tutti i vecchi termini associati a nessun nodo (xkè i vecchi nodi li hai già rimossi tutti con il modulo delete all) diventa una pratica molto più efficace.
http://www.sanisapori.eu
Direi che così si fa tutto FORSE...
Questo x rintracciare i termini non associati ad alcun nodo
SELECT *
FROM `term_data`
WHERE `vid` =15
AND `tid` NOT
IN (
SELECT `tid`
FROM `term_node`
)
LIMIT 0 , 5000
Questo x rintracciare le gerarchie non + esistenti o mai esistite, visto che comunque in ogni caso c'è un rigo x ogni termine esistente
SELECT *
FROM `term_hierarchy`
WHERE `tid` NOT
IN (
SELECT `tid`
FROM `term_data`
)
LIMIT 0 , 5000
http://www.sanisapori.eu