MySQL versió 8.0.31
S’han incorporat molt canvis en aquesta versió de MySQL, però en aquest cas destacarem les sentències Except i Intersect
Provem amb uns exemples sobre la BBDD vk22
![](https://operatiu.es/wp-content/uploads/2022/12/vk22-300x276.png)
Suposem les següents consultes i el que ens retorna el servidor en cada cas.
SELECT * From productes where stock > 50 and stock < 100;
![](https://operatiu.es/wp-content/uploads/2022/12/Captura-de-pantalla-2022-12-04-a-las-20.13.37.png)
SELECT * From productes where preu > 1000;
![](https://operatiu.es/wp-content/uploads/2022/12/Captura-de-pantalla-2022-12-04-a-las-20.14.52-1.png)
INTERSECT
Permet obtenir els registres comuns a dues taules o relacions.
SELECT * From productes where preu > 1000 INTERSECT Select * From productes where stock > 50 and stock < 100;
![](https://operatiu.es/wp-content/uploads/2022/12/intersect.png)
Abans el feiem amb INNER JOIN, JOIN o NATURAL JOIN
SELECT * FROM (Select * From productes where preu > 1000) as t1 NATURAL JOIN (SELECT * From productes where stock > 50 and stock < 100) as t2;
![](https://operatiu.es/wp-content/uploads/2022/12/natural_join.png)
o amb JOIN i les dues consultes
SELECT * FROM (Select * From productes where preu > 1000) as t1 JOIN (SELECT * From productes where stock > 50 and stock < 100) as t2 USING(id_fab,id_producte);
![](https://operatiu.es/wp-content/uploads/2022/12/join.png)
EXCEPT
Permet obtenir els registres no comuns a dues taules o relacions, segons l’ordre de taules indicat.
Select * From productes where preu > 1000 EXCEPT Select * From productes where stock > 50 and stock < 100;
![](https://operatiu.es/wp-content/uploads/2022/12/Captura-de-pantalla-2022-12-09-a-las-16.52.02.png)
Abans el feiem amb RIGHT JOIN o LEFT JOIN, segons l’ordre de taules.
SELECT * FROM (Select * From productes where preu > 1000) as t1 LEFT JOIN (Select * From productes where stock > 50 and stock < 100) as t2 USING(id_fab,id_producte) WHERE t2.id_fab IS NULL and t2.id_producte IS NULL;
![](https://operatiu.es/wp-content/uploads/2022/12/LEFT-JOIN.png)
Si per una altra banda, volem obtenir tots els registres no comuns de les dues taules, aleshores farem servir un FULL OUTER JOIN, que en MySQL es farà amb un [LEFT OUTER JOIN] UNION [RIGHT OUTER JOIN]
![](https://operatiu.es/wp-content/uploads/2022/12/FULL-OUTER-JOIN.png)