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