Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> SQL Server >> .

Come si unisce a due tavoli in mysql?

Unisci due tabelle in MySQL usando la clausola `join` in un'istruzione` select`. Esistono diversi tipi di join, ognuno con un comportamento leggermente diverso:

1. `Interiore join` (più comune):

Restituisce le righe solo quando c'è una corrispondenza in entrambe le tabelle in base alla condizione di join. Se non c'è corrispondenza in nessuna delle due tabelle, la riga è esclusa dal risultato.

`` `sql

Seleziona column_names

Dalla tabella 1

INNER JOIN TABLE2 sulla tabella1.column_name =table2.column_name;

`` `

* `Table1` e` Table2`:le tabelle a cui si desidera aderire.

* `column_name`:le colonne utilizzate per abbinare le righe tra le tabelle. Queste colonne devono avere tipi di dati compatibili.

Esempio:

Diciamo che hai due tavoli:

* `Clienti ': `Customerid`,` name`, `città`

* `ordini`: `Orderid`,` customerid`, `orderdate`,` totalamount`

Per ottenere il nome del cliente e i dettagli dell'ordine per tutti gli ordini:

`` `sql

Seleziona customer.Name, order.OrderId, order.OrderDate, Ordrs.Totalamount

Dai clienti

Ordini di join interni su clienti.customerid =order.customerid;

`` `

Ciò restituirà solo i clienti che hanno effettuato ordini e ordini che appartengono ai clienti esistenti.

2. `Sinistra join` (o` sinistra esterno join`):

Restituisce tutte le righe dalla tabella sinistra (`Tabella1`), anche se non c'è corrispondenza nella tabella destra (` Table2`). Se non c'è corrispondenza nella tabella destra, le colonne dalla tabella destra avranno valori `null '.

`` `sql

Seleziona column_names

Dalla tabella 1

Left join Table2 su Table1.column_name =table2.column_name;

`` `

Esempio: Per ottenere tutti i clienti e i loro ordini (compresi i clienti senza ordini):

`` `sql

Seleziona customer.Name, order.OrderId, order.OrderDate, Ordrs.Totalamount

Dai clienti

Left join order su clienti.customerid =order.customerid;

`` `

3. `Giunini a destra` (o` Giusta esterno a destra`):

Restituisce tutte le righe dalla tabella destra (`Table2`), anche se non c'è corrispondenza nella tabella sinistra (` Tabella1`). Se non c'è corrispondenza nella tabella sinistra, le colonne dalla tabella sinistra avranno valori `null '.

`` `sql

Seleziona column_names

Dalla tabella 1

Giusta destra Table2 sulla tabella1.column_name =table2.column_name;

`` `

Esempio: (Meno comune, ma utile in scenari specifici) Questo è funzionalmente equivalente a un "join sinistra" con le tabelle scambiate.

4. `Full Outer Join`:

Restituisce tutte le righe da entrambe le tabelle. Se c'è una corrispondenza, la riga corrispondente viene restituita. Se non c'è corrispondenza in una tabella, le colonne dell'altra tabella avranno valori `null '. mysql non supporta direttamente `full estern join` . Devi simularlo usando `Union` di` sinistra join` e `join a destra`.

`` `sql

Seleziona column_names

Dalla tabella 1

Left Join Table2 sulla tabella1.column_name =table2.column_name

UNIONE

Seleziona column_names

Dalla tabella 1

Giusta destra Table2 sulla tabella1.column_name =table2.column_name;

`` `

Scegliere il giusto join:

La scelta del tipo di join dipende dai dati di cui hai bisogno. `INTERNE JOIN` è la scelta più frequente, ma` sinistra join` e `join destro 'sono cruciali quando è necessario preservare tutte le file da una delle tabelle. Simula `Join esterno completa" quando hai bisogno di tutte le righe da entrambe le tabelle. Ricorda di usare gli alias (`Table1`,` Tabella2`) per chiarezza ed evitare l'ambiguità quando i nomi delle colonne sono gli stessi in entrambe le tabelle.

 

software © www.354353.com