Quando usar o MySQL Self Join e exemplos

When Use Mysql Self Join



MySQL Self-Join é um tipo de SQL Join que permite a você unir uma tabela a si mesma. Funciona usando outros tipos de junção, como cláusula de junção interna ou esquerda, para combinar linhas com base nas condições especificadas.

Este tutorial mostrará como usar a auto-junção do MySQL para mesclar uma tabela com ela mesma e criar dados personalizados.







Uso Básico

A auto-junção do MySQL usa apelidos de tabela para garantir que você não repita a mesma tabela mais de uma vez em uma instrução.



NOTA: Se você não estiver familiarizado com aliases de tabela, considere nosso outro tutorial que explica o conceito completamente.



A sintaxe geral para usar uma auto-junção é semelhante a uma ao combinar duas tabelas. No entanto, usamos apelidos de tabela. Considere a consulta mostrada abaixo:





SELECIONE alias1.cols,alias2.cols A PARTIR DE tbl1 alias1,tbl2 alias2 ONDE [doença]

Casos de uso de exemplo

Vamos usar exemplos para entender como realizar self joins do MySQL. Suponha que você tenha um banco de dados com as seguintes informações (veja a consulta completa abaixo)

DERRUBAR ESQUEMA E SE EXISTE auto;
CRIAR ESQUEMA auto;
USAR auto;
CRIAR TABELA Comercial(
Eu iria INT CHAVE PRIMÁRIA INCREMENTO AUTOMÁTICO ,
primeiro nome VARCHAR (255),
o email VARCHAR (255),
pagamento_id INT ,
inscrição INT
);
INSERIR EM Comercial(primeiro nome,o email,pagamento_id,inscrição) VALORES ('Valerie G. Phillip', '[email protegido]', 10001, 1), ('Sean R. Stories', '[email protegido]', 10005, 2), ('Bobby S. Newsome', '[email protegido]', 100010, 5);

Começaremos com uma junção INNER e, finalmente, uma junção à esquerda.



Self Join usando Inner Join

A consulta abaixo realiza uma junção INNER na tabela criada acima.

SELECIONE al1.* A PARTIR DE usuários al1 INTERNO JUNTE usuários al2 SOBRE al1.subscription=al2.subscription ORDENAR POR Eu iria DESC ;

O resultado é mostrado abaixo:

Self Join usando Left Join

O exemplo de consulta abaixo explica como podemos usar a auto-junção com a junção à esquerda.

SELECIONE ( CONCAT (al1.first_name, '->',al2.email)) COMO detalhes,al1.payment_id A PARTIR DE usuários al1 DEIXOU JUNTE usuários al2 SOBRE al1.id=al2.id;

O resultado da saída está abaixo:

Conclusão

Este guia o orientou sobre como usar a self join do MySQL para unir uma tabela a ele mesmo.

Obrigado por ler.