Mysql
 sql >> Database >  >> RDS >> Mysql

Come testare all'interno e tra ciascuna delle diverse tabelle?

Bene, Leonid ha ragione, si unisce al tavolo è ciò di cui hai bisogno. "Una clausola SQL JOIN viene utilizzata per combinare righe di due o più tabelle, in base a un campo comune tra loro." - http://www.w3schools.com/sql/sql_join.asp semplice come quella. Dici per la tabella A e la tabella B che il campo comune è ShopLot e per le tabelle B e C è ContainerRef corrisponde a ContainerID.

Facciamolo passo dopo passo.

Quindi prima selezioniamo le colonne dalle tabelle che vogliamo mostrare

 SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
         Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID

Vedi che c'è solo uno ShopLot e ContainerRef perché è un campo comune come abbiamo detto prima e non è necessario mostrare la stessa data due volte in una riga.

Il prossimo passo sarebbe vedere da dove DA SELEZIONIAMO queste colonne. In questo passaggio combiniamo le righe di queste tabelle separate e fondamentalmente creiamo una tabella con tutte queste colonne dall'istruzione select. Sarà così

FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

Cosa è successo qui. Per prima cosa abbiamo detto SELECT (qualcosa) DA Table_A e (interno) unisciti a lei con Table_B... Quindi c'è una domanda su come unire queste due tabelle (basato su cosa?)? E la risposta è sui campi Table_A.ShopLot e Table_B.ShopLot. Prendi una riga da Table_A, vedi il valore del campo ShopLot e trova tutte le righe con quel valore (se c'è) in Table_B e uniscile. La tabella_C viene unita allo stesso modo in cui viene modificato solo il nome dei campi.

Poi il terzo passo è fare la clausola WHERE. Questa è probabilmente la parte più semplice perché ora abbiamo un grande tavolo e dobbiamo solo dire di cosa abbiamo bisogno

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
  AND Table_C.PartTypeID='FLIES'

E questo è tutto. Ho cercato di renderlo il più semplice possibile. Scommetto che ci sono molte spiegazioni sui bagnanti online, basta fare una piccola ricerca...

Ecco un codice completo:

SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
         Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID
FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
  AND Table_C.PartTypeID='FLIES'

Spero che questo aiuti un po 'non è complicato come sembra all'inizio. Sarebbe meglio se l'esempio fosse con due tabelle ma è quello che è. GL