Query & Joins

Salve,

scusatemi ma come devo fare per unire 2 campi esterni che puntano alla stessa tabella? Dentro la tabella Giornalista ho 2 campi:

- servizio_1

- servizio_2

SELECT
`curriculum`.`idcurriculum`,
`giornalista`.`nome`,
`giornalista`.`cognome`,
`servizio`.`servizio`
FROM
`curriculum`
Inner Join `giornalista` ON `giornalista`.`idgiornalista` = `curriculum`.`giornalista`
Inner Join `servizio` ON `servizio`.`idservizio` = `curriculum`.`servizio_1`
Inner Join `servizio` ON `servizio`.`idservizio` = `curriculum`.`servizio_2`
WHERE
`giornalista`.`nome` LIKE '%antonio%' OR
`servizio`.`servizio` = '%polit%' OR
`servizio`.`servizio2` = '%sport%'

Grazie

Ulisse

inviato 9 anni fa
ulisse
X 0 X

non so se può servirti ma sia i campi che le tabelle possono essere identificati, all'interno di una query, con degli alias, ovvero dei nomi alternativi.

E' possibile in questo modo chiamare la stessa tabella più volte in modo diverso.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

e come dovrei fare?

risposto 9 anni fa
ulisse
X 0 X

Sono riuscito a far questo ma non recupera tutti i records ma solamente quelli che hanno una completa corrispondenza fra campi. C'è un metodo tipo "OR"

SELECT  curriculum.idcurriculum, 
        mygiornalista.nome    as giornalista, 
        myservizio_1.servizio as servizio_1, 
        myservizio_2.servizio as servizio_2, 
        myservizio_3.servizio as servizio_3, 
        mysettore_1.settore   as settore_1, 
        mysettore_2.settore   as settore_2, 
        mysettore_3.settore   as settore_3, 
        mylingua_1.lingua     as lingua_1, 
        mylingua_2.lingua     as lingua_2, 
        mylingua_3.lingua     as lingua_3, 
        curriculum.allegato, 
        curriculum.fieg_fnsi, 
        curriculum.attivo
FROM
`curriculum`
Inner Join `giornalista` AS `mygiornalista` ON `mygiornalista`.`idgiornalista` = `curriculum`.`giornalista`
Inner Join `servizio` AS `myservizio_1` ON `myservizio_1`.`idservizio` = `curriculum`.`servizio_1`
Inner Join `servizio` AS `myservizio_2` ON `myservizio_2`.`idservizio` = `curriculum`.`servizio_2`
Inner Join `servizio` AS `myservizio_3` ON `myservizio_3`.`idservizio` = `curriculum`.`servizio_3`
Inner Join `settore` AS `mysettore_1` ON `mysettore_1`.`idsettore` = `curriculum`.`settore_1` 
Inner Join `settore` AS `mysettore_2` ON `mysettore_2`.`idsettore` = `curriculum`.`settore_2`
Inner Join `settore` AS `mysettore_3` ON `mysettore_3`.`idsettore` = `curriculum`.`settore_3`
Inner Join `lingua` AS `mylingua_1` ON `mylingua_1`.`idlingua` = `curriculum`.`lingua_1`
Inner Join `lingua` AS `mylingua_2` ON `mylingua_2`.`idlingua` = `curriculum`.`lingua_2`
Inner Join `lingua` AS `mylingua_3` ON `mylingua_3`.`idlingua` = `curriculum`.`lingua_3`
risposto 9 anni fa
ulisse
X 0 X

No, per fare quello che desideri devi lanciare più query in sequenza

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Non riesco a capire come fare questa cosa.  :'(

Vorrei una sola lista.

Grazie

 :bye:

risposto 9 anni fa
ulisse
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda