V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
esolve
V2EX  ›  问与答

SQL 的一个问题

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