Non ho capito come MySQl gestisca le join right e left.
Faccio un esempio semplicerrimo:
Tabella 1
campoA=1 campoB=2
Tabella 2
campoC=3 campoD=4
Se metto in join la tabella1 e la tabella2 con una sintassi del genere:
select * from tabella1 t1
inner join tabella2 t2
on t1.campoA = t2.campoC
where t1.campoB = 2
non dovrei ottenere alcun record.
Se la query però diventasse:
select * from tabella1 t1
left join tabella2 t2
on t1.campoA = t2.campoC
where t1.campoB = 2
Dovrei ottenere il record della tabella1, anche se la condizione di join non è soddisfatta.
MySQL, a quanto pare, non ragiona così.
Sbaglio qualcosa o l'SQL di MySQL non è standard?
Mi aspetterei comportamenti molto simili se non uguali a quelli di Oracle, visto che il produttore è il medesimo.