Неизвестная ошибка столбца в CLAUSE с использованием псевдонима MYSQL

0

У меня есть этот набор команд SQL

SELECT CONCAT (
        REPEAT('    ', (COUNT(parent.itemName) - 1)),
        node.itemName
        ) AS 'NAME_',
    node.itemNo AS 'ITEM_CODE',
    node.assemblyNo AS 'ASSEMBLY_NO.',
    ref_item_type.itemTypeName AS 'TYPE_',
    node.description AS 'DESCRIPTION_',
    node.serialNo AS 'SERIAL_NO',
    node.hardwareNo AS 'HARDWARE_NO',
    node.modelNo AS 'MODEL_NO',
    node.version AS 'VERSION_',
    ref_item_uom.uomName AS 'UNIT_',
    ref_item_cat.catName AS 'CATEGORY_',
    ref_item_product_type.prodTypeName AS 'PRODUCT TYPE',
    man_network.networkName AS 'NETWORK_',
    ref_item_package.packageName AS 'PACKAGE_',
    node.reorderPoint AS 'REORDER_POINT',
    node.cost AS 'COST_',
    node.price AS 'PRICE_',
    node.surcharge AS 'SURECHARGE_',
    node.validity AS 'VALIDITY_',
    node.validityUnit AS 'VALIDITY_UNIT',
    node.isSpecialItem AS 'SPECIAL_',
    node.isActive AS 'IS_ACTIVE_',
    node.itemIndex AS 'ITEM_INDEX'
FROM man_item AS node,
    man_item AS parent
LEFT JOIN ref_item_type ON ref_item_type.itemTypeNo = node.itemType
LEFT JOIN ref_item_uom ON ref_item_uom.uomNo = node.uomNo
LEFT JOIN ref_item_cat ON ref_item_cat.catNo = node.itemCat
LEFT JOIN ref_item_product_type ON ref_item_product_type.prodTypeNo = node.prodTypeNo
LEFT JOIN man_network ON man_network.networkNo = node.networkNo
LEFT JOIN ref_item_package ON ref_item_package.packageNo = node.packageNo
WHERE node.lft BETWEEN parent.lft
        AND parent.rgt
    AND node.isVisible = 'Y'

И я получил некоторую ошибку

1054 - Неизвестный столбец "node.itemType" в разделе "on"

Я что-то пропустил?

PS: Я забыл упомянуть о моих полях в моем столе здесь, это кстати

itemIndex   
itemNo
subItem 
assemblyNo
refNo  
prodTypeNo 
networkNo
packageNo
itemName
itemType
itemSubTypeNo
itemCat
uomNo
serialNo
hardwareNo
modelNo
version
cost
price
surcharge
validity
validityUnit
logoLocation
fileHash
lft
rgt
isSpecialItem
isActive

Мой плохой для того, чтобы не публиковать структуру таблицы раньше, делает более запутанным и неопределенным

  • 0
    Прочитайте сообщение об ошибке еще раз. Таблица node (которая является таблицей man_item ) не имеет столбца itemType .
  • 0
    во-первых, явно определите inner join не используя comma
Показать ещё 7 комментариев
Теги:

2 ответа

0
Лучший ответ

Можете ли вы попробовать изменить эту часть кода на правильное соединение:

FROM man_item AS node, man_item AS parent LEFT JOIN ref_item_type ON ref_item_type.itemTypeNo = node.itemType Возможно, движок не знает, как читать список разделенных таблиц ",", а затем левое соединение и вместо этого выбрасывать случайную ошибку.

FROM man_item AS node LEFT OUTER JOIN man_item AS parent ON node.lft BETWEEN parent.lft AND parent.rgt AND node.isVisible = 'Y' LEFT JOIN ref_item_type ON ref_item_type.itemTypeNo = node.itemType

  • 0
    это работает как шарм @ Рамья спасибо: D
  • 0
    Рад был помочь. Не могли бы вы выбрать его в качестве ответа, чтобы он не оставался открытым вопросом.
0

ниже из предложения выглядит странно

 FROM man_item AS node, man_item AS parent 

ниже ссылка имеет решение для аналогичной проблемы # 1054 неизвестный столбец в разделе clause error

  • 0
    Я изменил sql, предоставленный в этой ссылке, используя синтаксис sql "SELECT CONCAT (REPEAT ('', (COUNT (parent.name) - 1)), node.name) Имя AS FROM nested_category AS узел, nested_category AS родительский WHERE узел .lft BETWEEN parent.lft AND parent.rgt GROUP BY node.name ORDER BY node.lft; "
  • 0
    Вы изменили FROM man_item AS узел, man_item AS родитель
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню