我有一個內部查詢內查詢轉換後獲得更多的記錄加入
select * from ASSETVERSION where id in (
select ASSETVERSION_ID from scene_asset where scene_id in(
select scene_id from contentobject_scene where contentobject_id in(
select id from contentobject where course_id = 34660
)
)
)
and LOCATION is not null
當我運行此查詢我得到27條記錄。現在我轉換此查詢加入像
select av.* from ASSETVERSION av
inner join scene_asset sa on av.id = sa.assetversion_id
inner join scene s on s.id = sa.scene_id
inner join contentobject_scene co_s on s.id = co_s.scene_id
inner join contentobject co on co.id = co_s.contentobject_id
inner join course c on c.id = co.course_id
where
c.id = 34660
and av.location is not null
當我運行此查詢我得到36條記錄。當我從av.*
更改爲distinct av.*
時,我得到27條記錄作爲內部查詢返回。
當我從distinct av.*
更改爲distinct av.id, av.asset_id, av.location, co.name as "Content Object name", s.name as "Scene Name" from ASSETVERSION av
時,我再次獲得36條記錄。
distinct av.id, av.asset_id, av.location --, co.name as "Content Object name", s.name as "Scene Name" from ASSETVERSION av
工作正常。平均回報27條記錄。
有什麼辦法,我可以適用不同的,以co.name as "Content Object name", s.name as "Scene Name"
像
select distinct av.id, av.asset_id, av.location, distinct co.name as "Content Object name", distinct s.name as "Scene Name"
from ASSETVERSION av ...
,所以我會得到相同的27條記錄由內部查詢返回?
感謝
當您嘗試時發生了什麼? – 2013-04-29 11:21:34
@DanBracuk當我嘗試選擇不同的av.id,av.asset_id,av.location,distinct co.name作爲「內容對象名稱」,不同的s時,我在關鍵字'distinct'附近出現語法錯誤。名稱爲「場景名稱...」。謝謝 來自ASSETVERSION AV ...' – Basit 2013-04-29 11:24:49
區別應該只在您的查詢中使用一次 - 選擇不同的field1,field2,field3等... – sgeddes 2013-04-29 11:26:06