esolve
V2EX  ›  问与答

SQL 的一个问题

  •  
  •   esolve · Apr 17, 2017 · 2161 views
    This topic created in 3499 days ago, the information mentioned may be changed or developed.

    http://blog.csdn.net/u013252072/article/details/52912385 http://www.cnblogs.com/lpfuture/p/5772055.html

    上面两篇文章里,我看到两个类似的 sql 语句

    select * from b , (select tid from a limit 50000,200) a where b.id = a .tid; SELECT * FROM product a JOIN (select id from product limit 866613, 20) b ON a.ID = b.id

    我不懂,为何在,或者 join 后,表名 a 或者 b 前,有一个括号子查询是啥意思 这是什么语法?

    8 replies  •  2017-04-17 19:27:23 +08:00
    des
    des
    Apr 17, 2017 via Android
    1
    这是子查询,另外不存在表 a 。拜托你们好好看看语法吧。
    Jakesoft
    Jakesoft
    Apr 17, 2017 via iPhone
    2
    虚拟表
    hiro0729
    hiro0729
    Apr 17, 2017
    3
    文章中说了,利用表的覆盖索引来加速分页查询,
    也就是说 先在子查询里仅对主键进行分页操作,因为主键有索引,速度会快很多
    esolve
    esolve
    OP
    Apr 17, 2017
    4
    @des 你意思(select tid from a limit 50000,200) a 的意思是 a 是这个子查询的结果?
    不是应该是(select tid from a limit 50000,200) as a?
    esolve
    esolve
    OP
    Apr 17, 2017
    5
    @hiro0729 我知道,我只是对这个语句的语法看不懂
    artandlol
    artandlol
    Apr 17, 2017 via Android
    6
    limit 这么用 很慢很慢
    esolve
    esolve
    OP
    Apr 17, 2017
    7
    @artandlol 我问的是语法,和子查询,性能无关啊,呵呵
    aborigine
    aborigine
    Apr 17, 2017
    8
    @esolve #7 as 可以省略的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1925 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:36 · PVG 12:36 · LAX 20:36 · JFK 23:36
    ♥ Do have faith in what you're doing.