первого куска фона инфа: Это о СХ, которая держит объект - объектные отношения и их сортировку в одной таблице, столбцы object_id, parent_id и порядок сортировканужна помощь с MySQL Query
второго куска есть запрос с несколькими соединений , который я хочу отсортировать по 2 параметрам. Один из них - сортировка самого объекта, а второй - порядок сортировки его родителя.
Запрос у меня есть на данный момент является:
SELECT obj_asset.*, object.headline AS title, oo.sort_order AS sort, op.sort_order FROM obj_asset
JOIN object ON obj_asset.object_id = object.object_id
JOIN object_object AS oo on obj_asset.object_id = oo.object_id
JOIN (SELECT sort_order from object_object WHERE object_id = (SELECT parent_id from object_object WHERE object_id = obj_asset.object_id)) AS op ON obj_asset.object_id = oo.object_id
WHERE obj_asset.profile_id = 140 AND obj_asset.rsvp_enabled = 1 AND object.is_published = 1 ORDER BY sort DESC;
И это не работает. Это прекрасно работает, хотя:
SELECT obj_asset.*, object.headline AS title, oo.sort_order AS sort, op.sort_order FROM obj_asset
JOIN object ON obj_asset.object_id = object.object_id
JOIN object_object AS oo on obj_asset.object_id = oo.object_id
JOIN (SELECT sort_order from object_object WHERE object_id = (SELECT parent_id from object_object WHERE object_id = 11111)) AS op ON obj_asset.object_id = oo.object_id
WHERE obj_asset.profile_id = 140 AND obj_asset.rsvp_enabled = 1 AND object.is_published = 1 ORDER BY sort DESC;
Ошибка я получаю:
1054 - Неизвестный столбец 'obj_asset.object_id' в 'где предложение'
Как я могу заставить его работать?
Спасибо!
EDIT: я мог бы решить проблему, если бы мог придумать альтернативный способ включения родителей в запрос. Есть ли такой способ?
Вы уверены, что вы object_id столбец в таблице obj_asset? – KomarSerjio
Сообщение об ошибке является довольно хорошим ключом в этом случае. (Возможно, вам придется использовать стиль наименования 'tablename.fieldname', если интерпретатор пытается использовать неправильное поле object_id.) :-) –
@KomarSerjio - да, я - как вы можете видеть, это не единственное место, в котором я использовал ту же таблицу столбцов и, если он меняет его для фактического id. @middaparka - Я понимаю, почему возникает ошибка - в контексте внутреннего выбора нет obj_asset.object_id, поскольку он еще не выбран ... Но как я могу исправить это только одним запросом? –