我想已经有一段时间了,因为我已经编写了SQL,但我对这个看似微不足道的要求感到困惑:我想将父表和子表连接在一起,并通过子表中名为“order”的字段对子列进行排序。
假设您有一个question
表和一个question_answer
表:
question ( question_id, question_text )
question_answer ( answer_id, question_id, answer_text, display_order )
因此,对于每个问题,可以有多个答案,并且每个答案都有一个
display_order
字段。以下是一些数据的外观:
question
--------
1, "How much milk should I add""
2, "About how fast was he going?"
question_answer
---------------
1, 1, "A little", 0
2, 1, "Moderate", 1
3, 1, "A lot", 2
4, 2, "Pretty slow", 0
5, 2, "Average", 1
6, 2, "Like a bat out of hell", 2
因此,加入
question
和question_answer
时所需的结果将显示问题及其每个答案,但是这些答案将在给定的display_order
中,在问题的答案内。一个简单的查询,例如
select
q.question_text,
qa.answer_text
from
question q,
question_answer qa
where
q.question_id = qa.question_id
order by
qa.display_order
按
display_order
对结果集中的所有行进行排序,而不是按其display_order
对问题的每组答案进行排序麦可
最佳答案
order by q.question_id, qa.display_order
关于sql - SQL如何根据 “order”字段对子行进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45156119/