Log in

View Full Version : SQL Query halp pls



Warbarbie
17th February 2012, 13:06
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

Tunnel
17th February 2012, 13:13
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

Warbarbie
17th February 2012, 13:15
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

Mez
18th February 2012, 00:07
ma se relazioni con l'istruzione INNER JOIN ?

Rise-the-Sky
18th February 2012, 01:58
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)