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