Sono nuovo di SQL e sto avendo problemi a capire perché c'è una parola chiave JOIN
in una frase se uso la notazione a punti per selezionare lo tables.columns
che voglio. È importante quale tavolo scelgo tra i due? Non ho visto alcuna spiegazione per questo nella definizione di w3schools su quale tabella è la tabella FROM
. Nell'esempio seguente, come faccio a sapere quale tabella scegliere per lo FROM
? Poiché in sostanza ho già selezionato quale table.column
selezionare, può essere o?Spiega quale tabella scegliere "FROM" in una dichiarazione JOIN
Ad esempio:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Sono entrambi il da tavoli ..., si può dire dagli ordini e unisciti clienti e la query restituirà lo stesso risultati se si tratta di un join interno. Nel join sinistro, la tabella "from" è la tabella sinistra. Questo mi ha confuso quando ho iniziato a usare sql quindi nota questo, un join sinistro è la stessa cosa di un join esterno sinistro, l'unica differenza è la sintassi – CSharper
Sì. Può essere o. Nel tuo esempio, i due nomi di tabella potrebbero essere scambiati e le righe restituite sarebbero uguali. (Dove la collocazione dei nomi delle tabelle è importante con un'operazione di join "esterna", vale a dire "un LEFT JOIN b" equivale a "b RIGHT JOIN a", ma è diverso da "a RIGHT JOIN b". – spencer7593
As Per quanto riguarda la definizione della tabella 'FROM': ciò che stai selezionando" from "è il risultato dell'operazione di join, non di una tabella o dell'altro. Ciò che l'SQL sta specificando è l'operazione" join "su due tabelle" " I clienti UNISCONO gli ordini ON ... '". La query sta selezionando "da" il risultato dell'operazione di join (l'ordine delle espressioni nel confronto di uguaglianza non ha importanza. "A.col = b.col' è equivale a specificare 'b.col = a.col'; una proprietà dell'operatore di confronto di uguaglianza.) È buona pratica qualificare * tutti * i riferimenti di colonna nella query (come mostrato nell'esempio.) – spencer7593