Mysql 在外部查询结果中使用内部查询顺序
我有两张桌子——阿尔法和贝塔。我正在使用BETA版的查询结果作为ALPHA版的外部查询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,因此我无法按所需顺序显示结果 有没有办法在外部查询中使用内部查询顺序序列。
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订购