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

Mysql 在外部查询结果中使用内部查询顺序,mysql,Mysql,我有两张桌子——阿尔法和贝塔。我正在使用BETA版的查询结果作为ALPHA版的外部查询 SELECT a,b FROM alpha WHERE a IN( SELECT a FROM beta WHERE some_condition ORDER BY c DESC ); 现在我的问题是,我需要在最终结果中维护DESC顺序,但由于我无法访问表alpha中的c,因此我无法按所需顺序显示结果 有没有办法在外部查询中使用内部查询顺序序列。

我有两张桌子——阿尔法和贝塔。我正在使用BETA版的查询结果作为ALPHA版的外部查询

SELECT  a,b 
FROM    alpha 
WHERE   a IN(
    SELECT a 
    FROM   beta 
    WHERE  some_condition 
    ORDER  BY c DESC
);
现在我的问题是,我需要在最终结果中维护
DESC顺序
,但由于我无法访问表
alpha
中的
c
,因此我无法按所需顺序显示结果


有没有办法在外部查询中使用内部查询顺序序列。我无法更改任何一个表的结构。

您不必仅为了允许对行进行排序而更改表的结构,您只需要
连接
这些表,这样您就可以从另一个表访问列并保留
顺序

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表中的所有列都可用,排序也很容易

我已尝试在join框架中更改您的查询。 选择alpha.a,b 从alpha内部连接beta开始 alpha.[somefield]=beta.[somefield] 哪里有什么条件 按beta.c DESC订购