1件背景INF的:这是关于持有对象CMS - 客体关系及其在单表的排序,列OBJECT_ID,PARENT_ID和排序顺序需要帮助与MySQL查询
第二张有若干个连接查询,我想按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 'where子句'
我怎样才能得到它的工作?
谢谢!
编辑:我可以解决这个问题,如果我能想出替代方法来包括父母排序到查询中。有没有这样的方式?
你确定你已经在obj_asset表OBJECT_ID列? – KomarSerjio 2011-02-07 21:12:58
错误信息在这个例子中是一个很好的线索。 (如果解释器尝试使用错误的object_id字段,则可能必须使用`tablename.fieldname`命名样式。):-) – 2011-02-07 21:14:14
@KomarSerjio - 是的,我 - 你可以看到,它不是唯一的地方,我使用相同的列和表,它的工作原理,如果我改变它的实际ID。 @middaparka - 我明白为什么会出现错误 - 在内部选择的上下文中,没有obj_asset.object_id,因为它尚未被选中......但是我怎样才能解决这个只有一个查询? – 2011-02-07 21:18:00