Mysql esterno unire

Mysql esterno unire

MySQL fornisce molti comandi, necessari durante la gestione di un database. Ad esempio, spesso dobbiamo ottenere alcuni dati da tabelle diverse in base a alcune condizioni. MySQL fornisce quindi diversi tipi di join per ottenere i risultati desiderati. Imparamoci.

Non esiste un'affermazione come il join esterno completo in SQL, ma possiamo usare un semplice join per ottenere gli stessi risultati o semplicemente usando un'istruzione selezionata su due diverse tabelle.

Altrimenti, MySQL fornisce Sinistra uni E Giusti a destra Per ottenere i record o le righe dalla tabella destra o sinistra, rispettivamente. Proviamo un paio di esempi diversi per ottenere i risultati desiderati utilizzando join appropriati.

Esempi

Prima di iniziare a imparare l'utilizzo di sinistra e destra. Impareremo come ottenere tutti i dati da entrambe le tabelle (comuni o non comuni) utilizzando l'istruzione SECK SECK e usando l'istruzione Select. Innanzitutto, proviamo a ottenere tutti i dati da entrambe le tabelle utilizzando l'istruzione Select.

Ad esempio, ci sono 2 tabelle che abbiamo ottenuto con il nome dell'autore e dei libri.

Libri discreti; Autori discreti;

Se vogliamo ottenere tutte le colonne da entrambe le tabelle. La query selezionata verrà utilizzata in questo modo:

Seleziona * da libri, autori;

Come puoi vedere, abbiamo tutte le colonne di entrambe le tabelle senza nemmeno fornire una condizione.

Se utilizziamo la clausola di join o cross join, entrambi ci porteranno gli stessi risultati. Per esempio:

Seleziona * Dai libri unire gli autori;

Ora, proviamo ad applicare la croce join:

Seleziona * da libri Cross Join Authors;

Come puoi testimoniare, tutte queste domande ci stanno portando gli stessi risultati.

Tuttavia, non è bene avere tutte le colonne in una forma così astratta. Quindi, per ottenere alcune colonne specifiche dalla tabella sinistra o destra, ci sono due modi in cui è possibile procedere; Un modo è che si utilizzano i nomi delle colonne utilizzando le istruzioni selezionate o utilizzando join che si adattano al requisito.

Va bene, ora andiamo avanti per capire il join sinistro e il giuntura a destra.

Sinistra uni

Supponiamo che vogliamo ottenere alcune colonne specifiche che provengono dalla tabella dei libri o comuni tra i libri e gli autori, sulla base di alcune condizioni, la condizione è effettivamente fornita confrontando due diverse tabelle. Ad esempio, vogliamo unirci a due tabelle, libri e autori in cui l'ID del libro è uguale all'ID dell'autore. Possiamo aspettarci un tale risultato utilizzando l'istruzione Select Left; Seleziona query con i nomi delle colonne che si desidera ottenere dalla tabella dei libri o dagli autori. La query selezionata con il join e la condizione di sinistra sarebbero così:

Seleziona libri.book_name, libri.Book_id, autori.autore_id,
autori.Author_fname, autori.autore_lname
Dai libri
Autori a sinistra
Sui libri.book_id = autori.autore_id;

Da quando abbiamo menzionato la tabella dei libri sul lato sinistro, il join otterrà l'ID di una riga dalla tabella dei libri e cercherà lo stesso numero di ID nella tabella dell'autore. Se trova lo stesso numero ID, mostrerà anche le colonne fornite dalla tabella dell'autore. Altrimenti, mostrerà null nelle colonne della tabella dell'autore. Eseguiamo questa domanda e assistiamo ai risultati.

Come puoi vedere, abbiamo le righe da entrambe le tabelle in cui l'ID tabella dei libri è uguale all'ID della tabella dell'autore. Nell'ultima riga, possiamo anche vedere che non esiste un ID numero 4 nella tabella dell'autore, quindi ha restituito NULL contro di esso.

Giusti a destra

Allo stesso modo, se vogliamo ottenere alcuni dati, dalla tabella dell'autore o comune tra i libri e la tabella dell'autore, in base ad alcune condizioni, questo tipo di risultati può essere prevedibile utilizzando la clausola di join e seleziona giusta. La query selezionata con il giusto join e la condizione sarebbero così:

Seleziona libri.book_name, libri.Book_id, autori.autore_id,
autori.Author_fname, autori.autore_lname
Dai libri
Giusti a destra autori
Sui libri.book_id = autori.autore_id;

Questa volta, sappiamo che la tabella degli autori è sul lato destro, quindi il join otterrà l'ID di una riga dalla tabella dell'autore e cercherà lo stesso numero ID nella tabella del libro. Se trova lo stesso numero ID, mostrerà le colonne fornite dalla tabella dei libri. L'esecuzione della query si tradurrebbe in questo:

Come puoi vedere, abbiamo le righe da entrambe le tabelle in cui l'ID dell'autore è uguale all'ID del libro. Sappiamo che c'era un quarto libro nella tabella dei libri, anche se non l'abbiamo capito, questo è a causa del giusto join.

Quindi, ecco come funzionano davvero il join a sinistra e la destra.

Conclusione

Abbiamo imparato e compreso la croce, la sinistra e la destra, oltre a imparare a usarli per ottenere i risultati desiderati in MySQL. Abbiamo anche provato un paio di diversi esempi di join per comprendere i concetti in un modo migliore e profondo.