簡體   English   中英

MySQL用外鍵SELECT語句拒絕四個聯接表

[英]MySQL Joining Four Tables with Foreign Key SELECT Statement Rejecting Third

不知道我是否完全正確地執行了此操作,因為這是我第一次使用外鍵進行操作。

我正在嘗試對四個表進行JOIN

  • inventory_detail_history
  • 出貨量

與這兩個持有外鍵

  • 批號_詳細信息(批發)
  • shipment_ids

我在shipment_details id字段上應用了外鍵約束。 這引用了我的shipment_ids表上的shipment_id列。

shipment_details有以下欄目: idQuantityPurchasedUnitCostFreightTotalCustomDutiesTotal

shipment_ids包含以下列: idSKUshipment_id

這個想法是嘗試通過將多個SKU應用於特定的shipment_id (或者,我想,是shipment_details id )來規范我的數據庫。

在兩個表inventory_detail_historyshipments上進行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.idshipment_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM