Я пытаюсь добавить количество строк в существующий запрос, но получаю сообщение об ошибке
неизвестный столбец 'pl.GroupNumber' в 'предложении'
Я, очевидно, тоже собираюсь ответить на этот вопрос, если это поможет кому-то еще, поскольку, написав все это здесь, мне пришло в голову отменить ОТ:
* ОТ(ВЫБЕРИТЕ @row_number: = 0) AS t, parts_listing pl *
, который, казалось, добился цели!Не совсем понимаю, почему это сработало, но это сработало.
SELECT DISTINCT
(@row_number:=@row_number + 1) AS RowNum,
pl.ID,
pn.ID AS SubID,
IF(ListType,(SELECT MAX(ID) FROM parts_notes
WHERE PageNo=429
AND ListType IS NOT NULL AND SubPage IS NULL AND
(BasePart IS NOT NULL AND Models IS NOT NULL
AND (BasePart=pl.PartNo
AND pl.Models LIKE CONCAT('%', Models ,'%')))
OR (BasePart IS NOT NULL AND Models IS NULL
AND BasePart=pl.PartNo) ),NULL) AS SubMax,
ListType,
IndentText,
BaseGroup,
BaseName,
GroupName,
Title,
`Name`,
pl.Models,
pl.PartNo,
pn.PartNo AS SubPartNo,
pl.Quantity,
pn.Quantity AS SubQuantity,
pn.Description AS SubDescription,
ListType,
Column_1,
Column_2,
Column_3,
Column_4,
Column_5,
Column_6,
Column_7,
Column_8,
COALESCE(pl.GroupNumber, pn.GroupNo) AS GroupNo,
COALESCE(pl.Description, pn.Description) AS Description,
COALESCE(pl.PageNo, pn.PageNo) AS PageNo,
COALESCE(pl.SubPage, pn.SubPage) AS SubPage,
COALESCE(pl.RevDate, pn.RevDate) AS RevDate,
COALESCE(pl.Edition, pn.Edition) AS Edition
FROM parts_listing pl, (SELECT @row_number:=0) AS t
LEFT JOIN parts_notes pn ON pl.GroupNumber=pn.GroupNo
AND ((ListType < 5 AND (pl.PartNo=BasePart AND BasePart IS NOT NULL) OR BasePart IS NULL)
OR ((ListType > 4) AND (pl.GroupNumber=pn.GroupNo OR pl.PartNo=BasePart)))
WHERE BaseGroup=30 AND pl.PageNo=429 AND (pl.SubPage IS NULL
AND pn.SubPage IS NULL)
AND (pl.PageNo = pn.PageNo OR pn.PageNo IS NULL)
AND (pl.SubPage = pn.SubPage OR pn.SubPage IS NULL)
ORDER BY pl.ID, pn.ID
LIMIT 150;