• MySql cmd下的学习笔记 —— 有关多表查询的操作(多表查询练习题及union操作)


    先建立一张 m 表

    mysql> create table m (
        -> mid int,
        -> hid int,
        -> gid int,
        -> mres varchar(10),
        -> matime date
        -> )engine myisam charset utf8;
    Query OK, 0 rows affected (0.07 sec)


    mysql> insert into m
    -> values
    -> (1, 1, 2, '2:0', '2018-08-03'),
    -> (2, 2, 3, '1:2', '2018-08-03'),
    -> (3, 3, 1, '2:5', '2018-08-04'),
    -> (4, 2, 1, '3:2', '2018-08-05');
    Query OK, 4 rows affected (0.00 sec)

    再建立一个 t 表

    mysql> create table t(
        -> tid int,
        -> tname varchar(10)
        -> )engine myisam charset utf8;
    Query OK, 0 rows affected (0.07 sec)


    mysql> insert into t
    -> values
    -> (1, '甲'),
    -> (2, '乙'),
    -> (3, '丙');
    Query OK, 3 rows affected (0.00 sec)
    Records: 3 Duplicates: 0 Warnings: 0

    题目要求:把hidgid中的数字替换成tid中的tname

     (一)根据m表和t表左连接,把hid替换成t表的tname

     

     (二)把(一)的结果集当成一张表再做一次左连接

          把gid替换成t表的tname

     

    或左连接两张表(用两次left join)

    union

    查出价格低于100元或价格高于4000元的商品

    or

    或者用union

     

     

    当取出的结果集,列名不一致时,依然可以用union

    但是当的数量不等时,就无法合并

     

    用union,取出cat_id = 4 和cat_id = 5 的商品,并按照价格升序排列 (union后的结果集依然可以看成一个表)

     

    取cat_id = 3的价格前三高的商品以及cat_id = 4的前两高的商品

     

    如果这么写就会报错

     

    (一定要用括号将一句的select放在一起)

     并且union在遇到重复行时,会取出重复行

     

  • 相关阅读:
    python—Celery异步分布式
    python 安装虚拟环境步骤
    同源策略:
    git 的用法和命令
    一分钟搞定AlloyTouch图片轮播
    JavaScript学习总结(一)——延迟对象、跨域、模板引擎、弹出层、AJAX示例
    CSS3与页面布局学习总结(八)——浏览器兼容与前端性能优化
    移动前端UI选择
    你必须收藏的Github技巧
    HTML5 学习笔记(二)——HTML5新增属性与表单元素
  • 原文地址:https://www.cnblogs.com/abc23/p/9417028.html
Copyright © 2020-2023  润新知