Salve a tutti, descrivo il mio problema:
ho necessita di estrapolare da due tabelle (´persone´, ´colloqui´) tutte le persone che hanno una competenza X, tirando fuori solamente quelle che non hanno mai fatto colloqui e/o se l'hanno fatto, l'hanno fatto prima di una certa data.
I campi delle tabelle che m'interessano sono i seguenti:
PERSONE:
- id_persona
- anagrafica
- ncolloqui (numerico, indica il numero di colloqui effettuati)
- competenze
COLLOQUI
- candidato (Foreign Key, contiente l' ´id_persona´)
- data_colloquio
La query che avevo pensato, dopo alcuni tentativi era questa:
SELECT * FROM persone
INNER JOIN colloqui ON colloqui.candidato = persone.id_persona
WHERE persone.competenze LIKE '%XXXX%'
AND (
(persone.ncolloqui = 0)
OR
(persone.ncolloqui>0 AND colloqui.data <> 'xxxx/xx/xx')
)
Il problema è che mi estrapola solamente i dati che rispondono alla condizione
2) (persone.ncolloqui>0 AND colloqui.data <> 'xxxx/xx/xx')
ignornado tutti quelli che rispondono alla condizione
1) (persone.ncolloqui = 0)
Ora, magari il problema è banalmente risolvibile, ma francamente non mi viene in mente nulla. Ho provato a vedere le sintassi dei vari Inner Join, Left Outern Join, Select di Select, ecc.., ma non mi pare che facciano al caso mio... Voi cosa mi consigliereste?
Io pensavo di trovare un modo per cercare prima i dati che rispondono al mio criterio 1), poi quelli del criterio 2) e unirli, ma come?
Grazie anticipatamente e ciao!