Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak testować w każdym z kilku stołów i pomiędzy nimi?

Cóż, Leonid jest właściwym połączeniem stołu jest tym, czego potrzebujesz. „Klauzula SQL JOIN służy do łączenia wierszy z co najmniej dwóch tabel na podstawie wspólnego pola między nimi”. - http://www.w3schools.com/sql/sql_join.asp proste. Mówisz dla tabeli A i tabeli B, że wspólnym polem jest ShopLot, a dla tabel B i C to ContainerRef odpowiada ContainerID.

Zróbmy to krok po kroku.

Więc najpierw wybierzmy kolumny z tabel, które chcemy pokazać

 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

Widzisz, że jest tylko jeden ShopLot i ContainerRef, ponieważ jest to wspólne pole, jak powiedzieliśmy wcześniej i nie ma potrzeby, aby pokazywać tę samą datę dwa razy w jednym wierszu.

Następnym krokiem byłoby sprawdzenie, skąd wybieramy te kolumny. W tym kroku łączymy wiersze z tych oddzielnych tabel i zasadniczo tworzymy jedną tabelę ze wszystkimi kolumnami z instrukcji select. To będzie wyglądać tak

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

Co się tutaj stało. Najpierw powiedzieliśmy SELECT(coś) FROM Table_A i (inner) połącz ją z Table_B... Potem pojawia się pytanie, jak połączyć te dwa stoliki (na podstawie czego?)? Odpowiedź brzmi:ON Table_A.ShopLot i Table_B.ShopLot. Weź wiersz z Table_A, zobacz wartość pola ShopLot i znajdź wszystkie wiersze z tą wartością (jeśli jest) w Table_B i połącz je. Table_C łączy się w ten sam sposób, w jaki zmienia się tylko nazwa pól.

Trzecim krokiem jest zrobienie klauzuli WHERE. To prawdopodobnie najłatwiejsza część, ponieważ mamy teraz jeden duży stół i musimy tylko powiedzieć, czego potrzebujemy

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

I to wszystko. Próbowałem to uprościć, jak tylko mogłem. Założę się, że w Internecie jest wiele wyjaśnień dotyczących kąpieli, wystarczy przeprowadzić małe wyszukiwanie ...

Oto kompletny kod:

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'

Mam nadzieję, że ta pomoc trochę nie jest skomplikowana na pierwszy rzut oka. Byłoby lepiej, gdyby był na przykład z dwoma stolikami, ale tak właśnie jest. KG



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aktualizacja MySQL, pomiń puste pola z PDO

  2. Odzyskaj miejsce na dysku po upuszczeniu bazy danych w mysql

  3. MySQL:Błąd 1628:Komentarz do tabeli „klient” jest za długi (maks. =60)

  4. Czy jest jakaś korzyść z tworzenia i indeksowania klucza podstawowego?

  5. Jak korzystać z sesji na stronach internetowych?