[英]Postgres Ordering by subquery/multiple subqueries
我有四个模型:表、列、行、单元格。 一个单元格属于一个行和一个列,它们都属于一个表。 它的 UI 看起来像典型的表格视图,显示的值是单元格的值。
单元格有一个值。 每个表也有一个“键”类型的列,其单元格的值是唯一的。
列可以是关系类型的,这意味着它们的单元格值引用不同表(链接表)的键列中的单元格。 这样,关系单元格实际上将“属于”链接表中的一行,因为键值是唯一的。
对于关系型单元格,用于显示的值不是单元格中存储的值(来自链接表的键列的值)。 我们让用户从链接表中选择一个列作为“显示列”,这些值是用于在此表的关系列中显示的值。
通常,我们通过选择排序的列中的普通旧单元格值对行进行排序。 但是,当按关系类型的 Column 排序时,我们希望按其 Cell 的显示值排序。 这意味着对于每一行,我们需要找到存储在关系单元格中的值(来自链接表的键值),从链接表中找到其键列的单元格与该值匹配的对应行,然后找到该行的值显示列的单元格,然后按该值排序。
一些样本值。
表格1
Column 1 (key) | Column 2
1 | b
2 | a
3 | c
表 2
第 2 列链接到表 1。这意味着它存储来自表 1 的键值,但当前使用来自表 1 的第 2 列的值作为其显示列。
表 2 中的实际值:
Column 1 (key) | Column 2 (relational)
4 | 1
5 | 2
6 | 3
显示的内容:
Column 1 (key) | Column 2 (relational)
4 | b
5 | a
6 | c
订购后,表 2 应如下所示:
Column 1 (key) | Column 2 (relational)
5 | a
4 | b
6 | c
坦率地说:我完全不知道如何构造这个 SQL 查询/子查询。 任何为我指明正确方向的建议将不胜感激。
如果我正确地跟随,您想要join
和order by
:
select t2.column1, t1.column2
from table2 t2 join
table1 t1
on t2.column2 = t1.column1
order by t1.column2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.