Е, Леонид е дясно, съединяването на масата е това, от което се нуждаете. „Клауза SQL JOIN се използва за комбиниране на редове от две или повече таблици въз основа на общо поле между тях.“ - http://www.w3schools.com/sql/sql_join.asp просто като това. Вие казвате за таблица A и таблица B, че общото поле е ShopLot, а за таблица B и C е ContainerRef, съответстващ на ContainerID.
Нека го направим стъпка по стъпка.
Така че първо нека изберете колони от таблиците, които искаме да покажем
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
Виждате, че има само един ShopLot и ContainerRef, защото това е общо поле, както казахме преди, и няма нужда да се показва една и съща дата два пъти на един ред.
Следващата стъпка би била да видим откъде ИЗБРАМЕ тези колони. В тази стъпка комбинираме редове от тази отделна таблица и основно създаваме една таблица с всички тези колони от оператора select. Това ще изглежда така
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
Какво се случи тук. Първо казахме SELECT(нещо) ОТ Table_A и (вътрешно) я присъединете към Table_B... Тогава има въпрос как да се присъединят тези две таблица (въз основа на какво?)? И отговорът е НА полетата Table_A.ShopLot и Table_B.ShopLot. Вземете ред от Table_A, вижте стойността на полето ShopLot и намерете всички редове с тази стойност (ако има) в Table_B и ги присъединете. Table_C се присъединява по същия начин, по който се променя само името на полетата.
След това третата стъпка е да направите клауза WHERE. Това е може би най-лесната част, защото сега имаме една голяма маса и просто трябва да кажем какво ни трябва
WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG'
AND Table_C.PartTypeID='FLIES'
И това е. Опитах се да го направя възможно най-просто. Обзалагам се, че онлайн има много обяснения за къпещите се, просто трябва да потърсите малко...
Ето пълен код:
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'
Надявам се това да помогне малко, не е сложно, както изглежда на пръв поглед. Би било по-добре, ако примерът е с две маси, но е това, което е. GL