Leonid má pravdu, připojení ke stolu je to, co potřebujete. "Klauzule SQL JOIN se používá ke spojení řádků ze dvou nebo více tabulek na základě společného pole mezi nimi." – http://www.w3schools.com/sql/sql_join.asp takhle jednoduché. Pro tabulku A a tabulku B říkáte, že společné pole je ShopLot a pro tabulky B a C je ContainerRef odpovídající ContainerID.
Pojďme to udělat krok za krokem.
Nejprve tedy vyberte sloupce z tabulek, které chceme zobrazit
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
Vidíte, že existuje pouze jeden ShopLot a ContainerRef, protože to je společné pole, jak jsme řekli dříve, a není potřeba ukazovat stejné datum dvakrát v jednom řádku.
Dalším krokem by bylo zjistit, odkud vybereme tyto sloupce. V tomto kroku zkombinujeme řádky z těchto samostatných tabulek a v podstatě vytvoříme jednu tabulku se všemi těmito sloupci z příkazu select. Bude to vypadat takto
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 se tady stalo. Nejprve jsme řekli SELECT(něco) FROM Table_A a (vnitřní) ji spojte s Table_B... Pak je tu otázka, jak spojit tyto dvě tabulky (na základě čeho?)? A odpověď je NA polích Table_A.ShopLot a Table_B.ShopLot. Vezměte řádek z tabulky_A, podívejte se na hodnotu pole ShopLot a najděte všechny řádky s touto hodnotou (pokud existují) v tabulce_B a spojte je. Tabulka_C se připojuje stejným způsobem, jako se mění pouze názvy polí.
Třetím krokem je vytvoření klauzule WHERE. To je pravděpodobně nejjednodušší část, protože nyní máme jeden velký stůl a stačí si říct, co potřebujeme
WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG'
AND Table_C.PartTypeID='FLIES'
A to je vše. Snažil jsem se to zjednodušit, jak jsem mohl. Vsadím se, že na internetu je mnoho vysvětlení pro koupající se, stačí jen trochu hledat...
Zde je úplný kód:
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'
Doufám, že to trochu pomůže, není to složité, jak to na první pohled vypadá. Bylo by lepší, kdyby byl příklad se dvěma tabulkami, ale je to tak. GL