linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] dubbio sql

Teodoro Santoni asbrasbra a gmail.com
Lun 13 Giu 2016 11:29:56 UTC
Ciao,

Il 13/06/16, antonello<info a antonellofacchetti.it> ha scritto:
> ho due tabelle:
>
> `sito1_terms` (`term_id`, `name`, `slug`, `term_group`)
> con esempio:
> (315, 'LA MECCANOGRAFICA SNC', 'la-meccanografica-snc', 0)
>
> e
>
> sito1_options` (`option_id`, `option_name`, `option_value`, `autoload`)
> con il record:
> 334222, 'taxonomy_315',
> 'a:1:{s:19:"avcp_codice_fiscale";s:11:"00106290190";}', 'yes'),
>
> i due record sono collegati, come si vede l'id del primo fle (315) viene
> usato per costruire il campo option_name (taxonomy_315)
>
> ora io dovrei fare un comando sql per estrarre i dati dalle due tabelle
> collegandoli.
>
> la mia ipotesi sarebbe:
> SELECT sito1_options.option_value, sito1_terms.name
> FROM sito1_options, sito1_terms
> JOINS
> sito1_terms.term_id=trim(substring_index(sito1_options.option_name,'_',-1))
> WHERE substring_index(sito1_options.option_name,'_',1)='taxonomy'
>
> ma l'errore che mi blocca è nel join...
>
> qualche suggerimento?
>
> Antonello

Potresti scegliere due strade imho:
1)
SELECT sito1_options.option_value, sito1_terms.name
FROM sito1_options JOIN sito1_terms ON
sito1_terms.term_id=trim(LEADING 'taxonomy_' FROM
sito1_options.option_name)
WHERE substring_index(sito1_options.option_name,'_',1)='taxonomy'

2) fare in modo che sia una vera fk levando quel 'taxonomy_' già
quando inserisci il dato, ergo che venga storato solo l'id, in modo
che invece di trimmare roba hai solo da comparare due numeri nel join.



Maggiori informazioni sulla lista Lug