繁体   English   中英

在外部查询结果中使用内部查询查询顺序

[英]use inner query query order sequence in outer query result

我有两张桌子-ALPHA和BETA。 我正在BETA上的查询结果用于ALPHA上的外部查询。

SELECT  a,b 
FROM    alpha 
WHERE   a IN(
    SELECT a 
    FROM   beta 
    WHERE  some_condition 
    ORDER  BY c DESC
);

现在我的问题是我需要在最终结果中维护DESC ORDER ,但由于我无法访问表alpha c ,因此我无法以所需的价格显示结果。

有什么方法可以在外部查询中使用内部查询顺序。 我无法更改任何一个表的结构。

您不必为了允许对行进行排序而更改表的结构,只需JOIN表即可访问其他表中的列并保留ORDER

SELECT  DISTINCT al.a, al.b
FROM    alpha al
        INNER JOIN Beta be
            ON al.a = be.a
WHERE   be. -- some condition
ORDER   BY be.c DESC

子查询中的order by子句对您的方案没有任何影响。

您需要的不是联接查询框架,而是联接框架。 您需要使用一个公共字段来连接alpha和beta表,创建连接后,alpha和beta表中的所有列均可用,因此排序很容易。

我试图在联接框架中更改您的查询。 从alpha上的alpha内部连接beta中选择alpha.a,b。[somefield] = beta。[somefield] WHERE some_condition ORDER BY beta.c DESC;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM