Order-By

按子選擇排序

  • March 29, 2012

我有 3 張桌子:articles, paragraphs,notes

一個article可能有很多paragraphs,一個paragraph可能有 0 或 1 個音符。

現在我想查找屬於一篇文章的所有筆記:

select * from notes 
where paragraph_id in 
  (select id from paragraphs where article_id='111' order by "order" asc)
order by ???

它可以獲取文章的所有註釋111,但順序不正確。id我希望結果集中的項目具有與子選擇中的順序相同的順序。

但是怎麼做?我已經嘗試了一段時間,但沒有得到正確的解決方案。

您可以轉換為inner join

select  n.*
from    notes n
join    paragraphs p
on      n.paragraph_id = p.id
where   p.article_id = '111'
order by
       p."order"

內部order by根本不需要。可能它也會混淆數據庫,不僅僅是我。

select 
 n.*
from 
 paragraps p,
 notes n
where
 p.article_id = 111
 and n.paragraph_id = p.id
order by p."order"

引用自:https://dba.stackexchange.com/questions/15774