[英]MySQL Joining Four Tables with Foreign Key SELECT Statement Rejecting Third
不知道我是否完全正確地執行了此操作,因為這是我第一次使用外鍵進行操作。
我正在嘗試對四個表進行JOIN
。
與這兩個持有外鍵
我在shipment_details
id
字段上應用了外鍵約束。 這引用了我的shipment_ids
表上的shipment_id
列。
shipment_details
有以下欄目: id
, QuantityPurchased
, UnitCost
, FreightTotal
, CustomDutiesTotal
shipment_ids
包含以下列: id
, SKU
, shipment_id
這個想法是嘗試通過將多個SKU應用於特定的shipment_id
(或者,我想,是shipment_details
id
)來規范我的數據庫。
在兩個表inventory_detail_history
和shipments
上進行INNER JOIN
沒問題:
SELECT Shipments.ListingSKU, Shipments.SKU, idh.Quantity, Shipments.OrderIdentifier, idh.Price, Shipments.SalesTax, Shipments.ShippingCharge, Shipments.ShipmentCost, idh.FinalValueFee, idh.PayPalFee
FROM Inventory_detail_history AS idh
INNER JOIN Shipments ON idh.OrderIdentifier = Shipments.OrderIdentifier
WHERE Shipments.SKU = 'SKU-NAME';
這將產生如下輸出:
但是,現在我需要將其與我的shipment_details
表結合起來,該表從shipment_details.id
和shipment_ids.shipment_id
關系引用SKU
。
我可以分開做。
SELECT sd.PurchaseQuantity, sd.UnitCost, sd.FreightTotal, sd.CustomDutiesTotal, sids.SKU, sids.shipment_id
FROM shipment_details AS sd
INNER JOIN shipment_ids AS sids on sd.id = sids.shipment_id
WHERE sids.SKU = 'SKU-NAME';
產生如下輸出:
但是,我需要將所有這些信息放在一起。
到目前為止,這是我最好的鏡頭。
SELECT Shipments.ListingSKU, Shipments.SKU, idh.Quantity, Shipments.OrderIdentifier, idh.Price, Shipments.SalesTax, Shipments.ShippingCharge, Shipments.ShipmentCost, idh.FinalValueFee, idh.PayPalFee, sd.PurchaseQuantity, sd.UnitCost, sd.FreightTotal, sd.CustomDutiesTotal, sids.SKU, sids.shipment_id
FROM Inventory_detail_history AS idh
INNER JOIN Shipments
ON idh.OrderIdentifier = Shipments.OrderIdentifier
WHERE Shipments.SKU = 'SKU-NAME'
INNER JOIN shipment_ids AS sids
ON sids.SKU = 'SKU-NAME'
INNER JOIN shipment_details AS sd
ON sd.id = sids.shipment_id
但是我出錯了
#1054-“字段列表”中的未知列“ sd.PurchaseQuantity”
請注意,此列無關緊要,只是拒絕了第三個表選擇。 如果我將其更改為SELECT . . . . idh.PayPalFee, sd.UnitCost, sd.PurchaseQuantity
SELECT . . . . idh.PayPalFee, sd.UnitCost, sd.PurchaseQuantity
它會說#1054 - Unknown column 'sd.UnitCost' in 'field list'
有人可以提供幫助以得到適當響應的幫助嗎?
在查詢末尾而不是第二次聯接之后應用where子句可以解決該錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.