首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Order子查询与order by

Order子查询与order by
EN

Database Administration用户
提问于 2016-11-04 21:04:24
回答 2查看 858关注 0票数 0

我需要为我的子查询字段订购我的查询。

企图:

代码语言:javascript
复制
 SELECT * from
 (
    SELECT *
    FROM (`multicategoria`)
    INNER JOIN `modelo` ON `modelo`.`id_MOD` = `multicategoria`.`id_MOD`
    INNER JOIN `categoria` ON `categoria`.`id_CAT` = `multicategoria`.`id_CAT`
    LEFT JOIN `media` ON `media`.`id_MED` = `modelo`.`id_MED`
    WHERE `categoria`.`id_CAT` =  '154'
    LIMIT 20, 4 )
order by x.id_CAT

但是mysql输出:

(1248):每个派生表必须有自己的别名

EN

回答 2

Database Administration用户

发布于 2016-11-05 01:01:20

x是什么?子查询中缺少的别名?

去掉子查询:

代码语言:javascript
复制
SELECT *
    FROM ...
    JOIN ...  ON ...
    JOIN ...  ON ...
    WHERE ...
    ORDER BY ...   -- Belongs after WHERE and before LIMIT
    LIMIT ...;     -- Useless without ORDER BY

问题:由于您为id_CAT指定了一个值,所以这对ORDER BY id_CAT没有意义。也许你想要ORDER BY id_CAT, something_else?或者简单地说是ORDER BY something_else

票数 1
EN

Database Administration用户

发布于 2016-11-04 21:20:22

只需将内表命名为:

代码语言:javascript
复制
SELECT * 
from ( 
    SELECT * 
    FROM (multicategoria) 
    INNER JOIN modelo ON modelo.id_MOD = multicategoria.id_MOD 
    INNER JOIN categoria ON categoria.id_CAT = multicategoria.id_CAT 
    LEFT JOIN media ON media.id_MED = modelo.id_MED 
    WHERE categoria.id_CAT = '154' LIMIT 20, 4 ) 
as TABLE_ALIAS  order by x.id_CAT;
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/154309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档