Usando o MySQL Union Operator

Usando o MySQL Union Operator
Muitos operadores existem no MySQL para recuperar dados de várias tabelas com base nos requisitos. Um dos operadores MySQL úteis é a união. É usado para combinar registros de duas ou mais tabelas escrevendo uma única consulta. Cada instrução SELECT usada com o operador da união deve conter o mesmo número de campos e o tipo de dados de cada campo será o mesmo. Recupera todos os valores de campos comuns e incomuns de todas as tabelas mencionadas na consulta removendo entradas duplicadas.

Sintaxe:

Selecione Field1, Field2,… Fieldn
Da Tabela 1
[Onde cláusula]
União [distinto]
Selecione Field1, Field2,… Fieldn
Da Tabela2
[Onde cluase];

Aqui, a cláusula onde o modificador distinto são opcionais. Se você deseja executar uma consulta selecionada com base em qualquer condição, execute a cláusula onde. É mencionado antes que os registros duplicados sejam removidos automaticamente ao executar a consulta com um operador de sindicato. Portanto, usar o modificador distinto é inútil.

Pré -requisito:

Você precisa criar o banco de dados e as tabelas necessários com alguns registros para saber o uso do operador da união. No início, conecte -se ao servidor de banco de dados usando mysql Cliente e execute a seguinte instrução SQL para criar um banco de dados chamado 'empresa'.

Criar empresa de banco de dados;

Selecione o banco de dados atual executando a seguinte instrução.

Empresa de uso;

Execute a seguinte declaração SQL para criar uma tabela chamada 'produtos' de cinco campos (id, nome, modelo_no, marca e preço). Aqui, 'eu ia'é a chave primária.

Crie produtos de tabela (
ID int (5) Auto_increment Key Primária não assinada,
Nome Varchar (50) não nulo,
model_no varchar (50) não nulo,
marca varchar (50) não nula,
preço int (5)) motor = innoDB;

Execute a seguinte declaração SQL para criar uma tabela chamada 'fornecedores de quatro campos (id, nome, endereço, pro_id). Aqui, 'eu ia' é uma chave primária e pro_id é uma chave estrangeira.

Criar fornecedores de tabela (
ID int (6) Auto_increment Key Primária não assinada,
Nome Varchar (50) não nulo,
endereço Varchar (50) não nulo,
pro_id int (5) não assinado não nulo,
Chave estrangeira (pro_id) Referências Produtos (ID) em Cascade Delete)
Motor = innodb;

Execute a seguinte instrução SQL para inserir quatro registros em os produtos mesa.

Insira os valores dos produtos
(Null, 'Samsung 42 ”TV', 'TV-78453', 'Samsung', 500),
(NULL, 'LG FRIGH', 'FR-9023', 'LG', 600)
(Null, 'Sony 32 ”TV', 'TV-4523W', 'Sony', 300),
(Null, 'Walton Washing Machine', 'WM-78KL', 'Walton', 255);

Execute a seguinte instrução SQL para inserir seis registros em os fornecedores mesa.

Insira os valores dos fornecedores
(Null, 'Rahman Enterprise', 'Dhanmondi', 1),
(Null, 'ABC Electronics', 'Mirpur', 2),
(Null, 'Nabila Enterprise', 'Mogbazar', 2),
(Null, 'Naher Plaza', 'Eskaton', 3),
(Null, 'Walton Plaza', 'Eskaton', 4)
(Null, 'Walton Plaza', 'Dhanmondi', 4);

*** NOTA: Supõe -se que o leitor esteja familiarizado com as instruções SQL para criar um banco de dados e tabela ou inserir dados em tabelas. Portanto, as capturas de tela das declarações acima são omitidas.

Execute a seguinte instrução SQL para ver os registros atuais de os produtos mesa.

Selecione * de produtos;

Execute a seguinte instrução SQL para ver os registros atuais de os fornecedores mesa.

Selecione * de fornecedores;

Aqui, o nome do fornecedor 'Walton Plaza'Existe em dois registros. Quando essas duas tabelas forem combinadas com o operador da união, um valor duplicado será gerado, mas será removido automaticamente por padrão e você não precisará usar um modificador distinto.

Uso de um operador de sindicato simples

A consulta a seguir recuperará os dados de pro_id e nome campos de fornecedores mesa e eu ia e nome campos de produtos mesa.

Selecione Pro_id como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De fornecedores
UNIÃO
Selecione ID como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De produtos;

Aqui, produtos A tabela contém 4 registros e fornecedores A tabela contém 6 registros com um registro duplicado ('Walton Plaza'). A consulta acima retorna 9 registros após a remoção da entrada duplicada. A imagem a seguir mostra a saída da consulta onde 'Walton Plaza' aparece por uma vez.

Uso de união com a cláusula WHERE WHERE

O exemplo a seguir mostra o uso do operador sindical entre duas consultas selecionadas em que a segunda consulta contém uma condição para pesquisar esses registros a partir de fornecedores Tabela que contém a palavra 'Walton' em o nome campo.

Selecione ID como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De produtos
UNIÃO
Selecione Pro_id como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De fornecedores
Onde fornecedores.nome como '%Walton%';

Aqui, a primeira consulta selecionada retornará 4 registros de produtos tabela e a segunda instrução SELECT retornará 2 registros de fornecedores mesa porque, a palavra, 'Walton'aparece duas vezes no'nome' campo. O total de 5 registros será devolvido após a remoção da duplicata do conjunto de resultados.

Uso de união com múltipla cláusula

O exemplo a seguir mostra o uso de um operador sindical entre duas consultas selecionadas, onde ambas as consultas contêm onde condição. A primeira consulta selecionada contém uma condição onde pesquisará esses registros de produtos Quais valores de preço são inferiores a 600. A segunda consulta selecionada contém a mesma condição que o exemplo anterior.

Selecione ID como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De produtos
Onde preço < 600
UNIÃO
Selecione Pro_id como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De fornecedores
Onde fornecedores.nome como '%Walton%';

Aqui, 4 registros serão devolvidos como saída após a remoção das duplicatas.

Uso da Union All com múltipla cláusula

É mostrado nos exemplos anteriores que todos os registros duplicados são removidos pelos operadores sindicais por padrão. Mas se você deseja recuperar todos os registros sem remover duplicatas, você terá que usar a Union All Operator. O uso da união, todo o operador é mostrado na seguinte instrução SQL.

Selecione ID como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De produtos
Onde preço < 600
Union All
Selecione Pro_id como 'ID do produto', nome como 'nome do produto ou nome do fornecedor'
De fornecedores
Onde fornecedores.nome como '%Walton%';

A imagem a seguir mostra que o conjunto de resultados retornados contém os registros duplicados após a execução da declaração acima. Aqui, 'Walton Plaza ' aparece duas vezes.

Conclusão:

Os usos dos operadores sindicais na declaração SQL são explicados neste tutorial usando exemplos simples. Espero que os leitores possam usar este operador corretamente depois de ler este artigo.