Quando utilizzare MySQL Self Join ed esempi

When Use Mysql Self Join



MySQL Self-Join è un tipo di SQL Join che ti consente di unire una tabella a se stessa. Funziona utilizzando altri tipi di join come la clausola di join interna o sinistra per combinare le righe in base alle condizioni specificate.

Questo tutorial ti mostrerà come utilizzare il self-join di MySQL per unire una tabella con se stessa e creare dati personalizzati.







Utilizzo di base

Il self-join di MySQL utilizza gli alias di tabella per assicurarsi di non ripetere la stessa tabella più di una volta in un'istruzione.



NOTA: Se non hai familiarità con gli alias di tabella, considera il nostro altro tutorial che spiega completamente il concetto.



La sintassi generale per l'utilizzo di un self-join è simile a quella quando si combinano due tabelle. Tuttavia, utilizziamo alias di tabella. Considera la query mostrata di seguito:





SELEZIONARE alias1.cols,alias2.cols A PARTIRE DAL tbl1 alias1,tbl2 alias2 DOVE [condizione]

Esempi di casi d'uso

Usiamo esempi per capire come eseguire i self join MySQL. Supponiamo di avere un database con le seguenti informazioni (vedi la query completa di seguito)

GOCCIOLARE SCHEMA SE ESISTE se stesso;
CREARE SCHEMA se stesso;
UTILIZZO se stesso;
CREARE TAVOLO utenti(
ID INT CHIAVE PRIMARIA INCREMENTO AUTOMATICO ,
nome di battesimo VARCHAR (255),
e-mail VARCHAR (255),
id_pagamento INT ,
sottoscrizione INT
);
INSERIRE IN utenti(nome di battesimo,e-mail,id_pagamento,sottoscrizione) VALORI ('Valeria G. Filippo', '[e-mail protetta]', 10001, 1), ('Sean R. Storie', '[e-mail protetta]', 10005, 2), ('Bobby S. Newsome', '[e-mail protetta]', 100010, 5);

Inizieremo con un INNER join e infine un left join.



Self Join utilizzando Inner Join

La query seguente esegue un join INNER sulla tabella creata sopra.

SELEZIONARE al1.* A PARTIRE DAL utenti al1 INTERNO ADERIRE utenti al2 SU al1.subscription=al2.subscription ORDINATO DA ID DESC ;

L'output è mostrato di seguito:

Self Join usando Left Join

La query di esempio di seguito spiega come possiamo utilizzare il self join con il join sinistro.

SELEZIONARE ( CONCAT (al1.first_name, '->',al2.email)) COME particolari,al1.payment_id A PARTIRE DAL utenti al1 SINISTRA ADERIRE utenti al2 SU al1.id=al2.id;

Il risultato dell'output è il seguente:

Conclusione

Questa guida ti ha illustrato come utilizzare MySQL self join per unire una tabella con se stesso.

Grazie per aver letto.