MySQL未知列,但列存在

时间:2017-02-10 20:04:07

标签: php mysql

运行以下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中重命名列,方法是键入列名并保存列结构,但仍然说该列不存在。

wp_quantum_data

1 个答案:

答案 0 :(得分:1)

问题在于您将古老的隐式recursiveCalls = &recursiveCallCount;语法与JOIN混合在一起。 LEFT JOIN仅与之前的表格合并,即LEFT JOIN;您无法在wp_hunter_quote_parts子句中引用wp_quantum_data中的列。

你应该养成使用隐式联接的习惯,并为所有内容使用明确的ON子句。

您似乎也以错误的顺序加入了联接。由于JOIN中可能缺少该行,因此您应wp_hunter_quote_parts使用该表。

LEFT JOIN