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

Hvordan tester man i og mellem hver af flere borde?

Godt Leonid har den rigtige bordsammenføjning er, hvad du har brug for. "En SQL JOIN-klausul bruges til at kombinere rækker fra to eller flere tabeller baseret på et fælles felt mellem dem." - http://www.w3schools.com/sql/sql_join.asp så simpelt er det. Du siger for tabel A og tabel B, at det fælles felt er ShopLot og for tabel B og C er ContainerRef matcher ContainerID.

Lad os bakke gøre det trin for trin.

Så lad os først vælge kolonner fra de tabeller, vi ønsker at vise

 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

Du kan se, at der kun er én ShopLot og ContainerRef, der er, fordi det er fælles felt, som vi sagde før, og der er ingen grund til at vise den samme dato to gange i én række.

Næste trin ville være at se, hvor FRA vi VÆLGER denne kolonne. I dette trin kombinerer vi rækker fra denne separate tabeller og skaber grundlæggende en tabel med alle disse kolonner fra select-sætning. Det vil se sådan ud

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

Hvad er der sket her. Først sagde vi SELECT(noget) FROM Table_A og (indre) join hende med Table_B... Så er der et spørgsmål, hvordan man forbinder denne to tabel (baseret på hvad?)? Og svaret er PÅ felterne Table_A.ShopLot og Table_B.ShopLot. Tag en række fra Table_A, se værdien af ​​ShopLot-feltet og find alle rækker med den værdi (hvis der er) i Table_B, og sæt dem sammen. Tabel_C er sammenføjet på samme måde, som kun navn på felter ændres.

Det tredje trin er at lave WHERE-klausul. Dette er nok den nemmeste del, fordi vi nu har ét stort bord, og vi skal bare sige, hvad vi har brug for

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

Og det er det. Jeg prøvede at gøre det så simpelt som muligt. Jeg vil vædde på, at der er meget badende forklaring online, skal du bare lave en lille søgning...

Her er en komplet kode:

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'

Jeg håber, at dette hjælper en lille smule, det er ikke kompliceret, som det ser ud i starten. Det ville være bedre, hvis for eksempel være med to bord, men det er, hvad det er. GL



  1. Vend tilbage til readline version 6.x i Homebrew for at rette Postgresql?

  2. Tutorial om SQL (DDL, DML) om eksemplet med MS SQL Server-dialekt

  3. mysql udenlandsk nøgle fejl #1452

  4. 4 tips til at køre SQL Server Diagnostics