/ / Prečo dostávam viac riadkov, ktoré očakávam pri spájaní 5 tabuliek? - sql, sql-server, sql-server-2008, tsql, pripojiť

Prečo dostávam viac riadkov, ktoré očakávam, keď sa pripojím k piatim stolom? - sql, sql-server, sql-server-2008, tsql, pripojiť

Na pripojenie 5 tabuliek používame nasledujúci dotaz. Pracuje v poriadku až na 4 tabuľky a dáva výsledok správne, ale po pridaní tabuľky položiek je to viac riadkov, ktoré sa vyžadujú, pretože to trvá názov položky pre všetky objednávky.

SELECT
CMP.CMPName,
OrderHeader.ID,
OrderHeader.Date,
Customer.Name,
OrderDetail.Qty,
ItemMaster.ItemName
FROM OrderHeader
INNER JOIN CMP ON Orders.CompanyID=Company.ID
INNER JOIN Customer ON OrderHeader.CustomerID=Customer.ID
INNER JOIN OrderDetail ON OrderHeader.OrderID=OrderDetail.OrderHeaderID
INNER JOIN ItemMaster ON OrderDetail.ItemID=ItemMaster.ID;

odpovede:

2 pre odpoveď č. 1

Myslím, že musíte skontrolovať, či všetky polia

OrderDetail.ItemID

alebo

ItemMaster.ID;

sú odlišné rudy majú prázdne hodnoty. spojenie dvoch polí s prázdnymi hodnotami prináša nezabezpečené výsledky.