Combinar informações de várias tabelas MySQL com UNION

Você pode combinar as informações a partir de mais de uma tabela MySQL usando a UNIÃO consulta. Com UNIÃO, as linhas são recuperadas a partir de uma ou mais tabelas e armazenadas em conjunto, um após o outro, num único resultado. Por exemplo, se a consulta selecionada 6 linhas de uma tabela e 5 linhas de outra tabela, o resultado seria conter 11 linhas.

UNIÃO é usada para combinar os resultados a partir de dois ou mais consultas de selecção. Os resultados de cada consulta são adicionados ao conjunto de resultados na sequência dos resultados da consulta anterior. O formato do UNIÃO consulta é como se segue:

SELECIONAR pergunta União todas selecionar pergunta ...

Você pode combinar o número de SELECIONAR consultas como você precisa. UMA SELECIONAR consulta pode incluir qualquer válido SELECIONAR formato, incluindo ONDE cláusulas, LIMITE cláusulas, e assim por diante. As regras para as consultas são

  • Todos SELECIONAR consultas deve selecionar o mesmo número de colunas.

  • As colunas selecionadas nas consultas devem conter o mesmo tipo de dados.

O conjunto de resultados contém todas as linhas a partir da primeira consulta, seguidas por todas as linhas da segunda consulta, e assim por diante. Os nomes das colunas utilizadas no conjunto de resultados são os nomes das colunas do primeiro SELECIONAR consulta.

A série de SELECIONAR consultas podem selecionar diferentes colunas da mesma tabela, mas situações em que você quer uma nova tabela com uma coluna de uma tabela seguido por outra coluna da mesma tabela são incomuns. É muito mais provável que você quiser combinar colunas de diferentes tabelas.

Por exemplo, você pode ter uma tabela de membros que se demitiram do clube (OldMember) E uma mesa separada dos atuais membros (Membro). Você pode obter uma lista de todos os membros, atuais e resignado, com a seguinte consulta:

SELECIONE sobrenome, nome dos Estados UNIÃO ALLSELECT sobrenome, nome DE OldMember

O resultado dessa consulta é o primeiro e último nomes de todos os membros atuais, seguidas pelos últimos e primeiros nomes de todos os membros que se demitiram.

Dependendo de como você organizou seus dados, você pode ter nomes duplicados. Por exemplo, talvez um membro renunciou, e seu nome está no OldMember mesa - mas ele se juntou de novo, então seu nome é adicionado à Membro mesa. Se você não quer duplicatas, não inclua a palavra TODOS. E se TODOS não está incluído, as linhas duplicadas não são adicionados ao resultado.

Você pode usar ORDENAR POR com cada SELECIONAR consultar, ou você pode usar ORDENAR POR com um UNIÃO consulta para ordenar todas as linhas no conjunto de resultados. Se você quiser ORDENAR POR para aplicar a todo o conjunto de resultados, em vez de apenas para a consulta que se segue, utilize parênteses da seguinte forma:

(SELECT lastName dos Estados UNIÃO ALLSELECT lastName DE OldMember) ORDER BY lastName

menu