运行以下MySQL Query并收到此错误:
数据库错误'on clause'
中的未知列'qd.ItemListID'
SELECT
IFNULL(hqp.IsActive, qd.ItemName) AS Item_Name, DATE_FORMAT(IFNULL(hqp.SalesDate, qd.SalesDate), '%m-%d-%Y') AS effectDate, IFNULL(hqp.NoBid, qd.NoBid) AS noBid, IFNULL(hqp.VendorName, qd.VendorName) AS vendor, IFNULL(hqp.Source, qd.Source) AS source, IFNULL(hqp.Type, qd.Type) AS type, IFNULL(hqp.Cost, qd.PurchaseCost) AS cost, IFNULL(hqp.Price, qd.SalesPrice) AS price, IFNULL(hqp.ConditionCode, '') AS conditionCode, qi.UnitOfMeasureSetRef_FullName AS uom
FROM wp_quantum_data AS qd, wp_hunter_quote_parts AS hqp
LEFT JOIN wp_quickbook_items AS qi ON (qi.ListID = IFNULL(qd.ItemListID, hqp.Item_ListID))
WHERE qd.IsActive = 1 || hqp.IsActive = 1
GROUP BY Item_Name
ORDER BY Item_Name ASC
该列存在于wp_quantum_data
表中,因此我无法解释为什么会发生此错误。我已经尝试在phpmyadmin中重命名列,方法是键入列名并保存列结构,但仍然说该列不存在。
答案 0 :(得分:1)
问题在于您将古老的隐式recursiveCalls = &recursiveCallCount;
语法与JOIN
混合在一起。 LEFT JOIN
仅与之前的表格合并,即LEFT JOIN
;您无法在wp_hunter_quote_parts
子句中引用wp_quantum_data
中的列。
你应该养成使用隐式联接的习惯,并为所有内容使用明确的ON
子句。
您似乎也以错误的顺序加入了联接。由于JOIN
中可能缺少该行,因此您应wp_hunter_quote_parts
使用该表。
LEFT JOIN