› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
manyfreebug
V2EX  ›  MySQL

这条 MySQL 的子查询语句为什么会这样写?(如图)

  •  
  •   manyfreebug · Nov 1, 2019 · 6178 views
    This topic created in 2526 days ago, the information mentioned may be changed or developed.


    customers 表和 orders 表:


    14 replies  •  2019-11-02 00:14:47 +08:00
    wqzjk393
        1
    wqzjk393  
       Nov 1, 2019   ❤️ 1
    select xx from a where a.xx=b.xx,就类似与 select xx from a inner join b on a.xx=b.xx 吧
    yEhwG10ZJa83067x
        2
    yEhwG10ZJa83067x  
       Nov 1, 2019
    看了没有问题啊,需要输出每一个消费者的订单数,这个 a.xx=b.xx 不就是解决输出每个人的订单数量。不然你怎么一步输出每个人的订单数量,难道一个个 cust_id 去执行吗,那如果有 1 万个客户呢,执行一万次才能得出?
    yEhwG10ZJa83067x
        3
    yEhwG10ZJa83067x  
       Nov 1, 2019   ❤️ 1
    where orders.cust_id = xxxx 这种形式一次只能统计一个用户的订单数而且必须知道 cust_id 才行
    a.xx=b.xx 可以一次得出每个人的订单数量而且不需要知道具体 cust_id
    U7Q5tLAex2FI0o0g
        4
    U7Q5tLAex2FI0o0g  
       Nov 1, 2019   ❤️ 1
    这……是……是很基础很基础的知识点吧。。。
    mwiker
        5
    mwiker  
       Nov 1, 2019   ❤️ 1
    首先看清题目,重点[对每个客户]。
    luopengfei14
        6
    luopengfei14  
       Nov 1, 2019   ❤️ 1
    临时性的表?
    eason1874
        7
    eason1874  
       Nov 1, 2019   ❤️ 1
    没毛病,我记得是可以这样用,类似 JOIN 的 ON tableA.cust_id = tableB.cust_id


    这例子里肯定要这样写啊,如果指定 cust_id 为固定值,那所有结果里的 orders 结果都是同一个客户的了。
    Canvas26
        8
    Canvas26  
       Nov 1, 2019   ❤️ 1
    你这是基础都没理解好吧,from 表 where 确定行,最后 select 选出需要的列
    这里涉及两张表,name 和 state 在第一张表里,而订单数要到另一张表里找,根据什么找?根据两表的共同字段 id 找,当你输出 coyote inc.的时候,id 就是 10001,当你输出 E Fudd 的时候,id 就是 10005,这里就是一个“变化”的确定值
    mynamewang0
        9
    mynamewang0  
       Nov 1, 2019   ❤️ 1
    mysql 我用的不多,不过你问的是 SQL 基本知识。过程我猜应该是,先全扫描一次 customers 表,再取得到的 cust_id 去匹配 orders 表,返回结果。整个过程应该没用到表的连接
    jowenz
        10
    jowenz  
       Nov 1, 2019 via Android   ❤️ 1
    标量子查询不就这么写么,oracle 也是这么写的
    JerryCha
        11
    JerryCha  
       Nov 1, 2019   ❤️ 1
    这就是 SQL 牛逼的地方了( x )
    Lipoic
        12
    Lipoic  
       Nov 1, 2019 via Android   ❤️ 1
    楼主你看的书叫啥
    leeg810312
        13
    leeg810312  
       Nov 1, 2019 via Android   ❤️ 1
    不太习惯这样写,我觉得应该用 group by
    manyfreebug
        14
    manyfreebug  
    OP
       Nov 2, 2019
    @Lipoic 刚从外面回来,《 SQL 必知必会》或者《 MySQL 必知必会》,两本书的作者是同一个人,书的很大部分是相同的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2556 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 14:14 · PVG 22:14 · LAX 07:14 · JFK 10:14
    ♥ Do have faith in what you're doing.