Algumas vezes não conseguimos obter os resultados que desejamos com uma só consulta no banco de dados. Para resolver esse problema existem os operadores UNION e UNION ALL.
Vamos a um exemplo:
(SELECT * FROM clientes WHERE idcidade = 1 LIMIT 3) UNION (SELECT * FROM clientes WHERE idcidade = 5 LIMIT 3) UNION (SELECT * FROM clientes WHERE idcidade = 8 LIMIT 3)
No exemplo acima ele vai retornar de uma só vez o mesmo que retornaria se você fizesse três selects diferentes.
Você também pode utilizar UNION ALL ao invés de UNION. A diferença é que ele vai retornar todos os resultados, inclusive as linhas repetidas.
Se não tiver como serem retornados registros duplicados, é mais vantagem usar o UNION ALL, que é mais rápido.
Observe que esse operador torna a consulta extremamente mais lenta, e ele só deve ser usados em casos bem específicos. Use com cautela.
Últimos comentários