-
SQL Query halp pls
Allora,
il problema è il seguente:
tabella A e tabella B
le 2 tabelle si legano attraverso 2 campi( A.x=B.x e A.y=B.y)
dovrei attraverso una query tirare fuori se possibile i dati nel seguente modo.
Da A solo quei campo che rispettano la condizione di cui sopra, da B tutti i record anche se la condizione non viene rispettata.
Voi che siete più informatici di me halp pls
-
Uhm ? si può fare un join basato su 2 campi anzichè su 1 ? o_0
io sapevo
SELECT TabellaA.Colonna1,TabellaA.Colonna2,TabellaA.Colon nan,TabellaB.Colonna1,TabellaB.Colonna2,etc
FROM TabellaA
INNER JOIN TabellaB
ON TabellaA.Colonna1=TabellaB.Colonna1
where TabellaA.Colonna1 in ( condizione )
Uhm, ho visto ora il discorso del non A, devi usare un right join
-
Boh penso di si, la chiave è un id sequenziale e l'anno di riferimento, ogni anno l'id riparte da zero, quindi la chiave è la combo dei 2
-
ma se relazioni con l'istruzione INNER JOIN ?
-
Puoi usare right join, left join oppure una union di 2 subquery.
Cmq si un join accetta anche condizioni composite.
Quindi la query viene
Select a.*, b.*
From tabellaB as b
Left Join tabellaA as a on (a.anno=b.anno and a.id = b.id)
oppure si usa un right invertendo tutto. In generale le right join si usano poco.
la union verrebbe
Select b.*,
a.*
From tabellaA as a,
tabellaB as b
Where a.anno = b.anno
And a.id +b.id
Union
Select b.*,
null x ogni campo di a
From tabellaB as b,
tabellaA as a
WHERE not (a.anno = b.anno
And a.id +b.id)
[Output: 5.02 Kb. compressed to 4.88 Kb. by saving 0.14 Kb. (2.72%)]