zoukankan      html  css  js  c++  java
  • [转]MySQL Left Join学习例子

    mysql> CREATE TABLE `product` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `amount` int(10) unsigned default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
     
    mysql> CREATE TABLE `product_details` (
      `id` int(10) unsigned NOT NULL,
      `weight` int(10) unsigned default NULL,
      `exist` int(10) unsigned default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1
     
    mysql> INSERT INTO product (id,amount)
           VALUES (1,100),(2,200),(3,300),(4,400);
    Query OK, 4 rows affected (0.00 sec)
    Records: 4  Duplicates: 0  Warnings: 0
     
    mysql> INSERT INTO product_details (id,weight,exist)
           VALUES (2,22,0),(4,44,1),(5,55,0),(6,66,1);
    Query OK, 4 rows affected (0.00 sec)
    Records: 4  Duplicates: 0  Warnings: 0
     
    mysql> SELECT * FROM product;
    +----+--------+
    | id | amount |
    +----+--------+
    |  1 |    100 |
    |  2 |    200 |
    |  3 |    300 |
    |  4 |    400 |
    +----+--------+
    4 rows in set (0.00 sec)
     
    mysql> SELECT * FROM product_details;
    +----+--------+-------+
    | id | weight | exist |
    +----+--------+-------+
    |  2 |     22 |     0 |
    |  4 |     44 |     1 |
    |  5 |     55 |     0 |
    |  6 |     66 |     1 |
    +----+--------+-------+
    4 rows in set (0.00 sec)
     
    mysql> SELECT * FROM product LEFT JOIN product_details
           ON (product.id = product_details.id);
    +----+--------+------+--------+-------+
    | id | amount | id   | weight | exist |
    +----+--------+------+--------+-------+
    |  1 |    100 | NULL |   NULL |  NULL |
    |  2 |    200 |    2 |     22 |     0 |
    |  3 |    300 | NULL |   NULL |  NULL |
    |  4 |    400 |    4 |     44 |     1 |
    +----+--------+------+--------+-------+
    4 rows in set (0.00 sec)

    mysql> SELECT * FROM product LEFT JOIN product_details
           ON (product.id = product_details.id)
           AND product_details.id=2;
    +----+--------+------+--------+-------+
    | id | amount | id   | weight | exist |
    +----+--------+------+--------+-------+
    |  1 |    100 | NULL |   NULL |  NULL |
    |  2 |    200 |    2 |     22 |     0 |
    |  3 |    300 | NULL |   NULL |  NULL |
    |  4 |    400 | NULL |   NULL |  NULL |
    +----+--------+------+--------+-------+
    4 rows in set (0.00 sec)

    mysql> SELECT * FROM product LEFT JOIN product_details
           ON (product.id = product_details.id)
           WHERE product_details.id=2;
    +----+--------+----+--------+-------+
    | id | amount | id | weight | exist |
    +----+--------+----+--------+-------+
    |  2 |    200 |  2 |     22 |     0 |
    +----+--------+----+--------+-------+
    1 row in set (0.01 sec)

    mysql>
    mysql> SELECT * FROM product LEFT JOIN product_details
           ON product.id = product_details.id
           AND product.amount=100;
    +----+--------+------+--------+-------+
    | id | amount | id   | weight | exist |
    +----+--------+------+--------+-------+
    |  1 |    100 | NULL |   NULL |  NULL |
    |  2 |    200 | NULL |   NULL |  NULL |
    |  3 |    300 | NULL |   NULL |  NULL |
    |  4 |    400 | NULL |   NULL |  NULL |
    +----+--------+------+--------+-------+
    4 rows in set (0.00 sec)

    mysql> SELECT * FROM product LEFT JOIN product_details
           ON (product.id = product_details.id)
           AND product.amount=200;
    +----+--------+------+--------+-------+
    | id | amount | id   | weight | exist |
    +----+--------+------+--------+-------+
    |  1 |    100 | NULL |   NULL |  NULL |
    |  2 |    200 |    2 |     22 |     0 |
    |  3 |    300 | NULL |   NULL |  NULL |
    |  4 |    400 | NULL |   NULL |  NULL |
    +----+--------+------+--------+-------+
    4 rows in set (0.01 sec)

    mysql> SELECT a.* FROM product a LEFT JOIN product_details b
           ON a.id=b.id AND b.weight!=44 AND b.exist=0
           WHERE b.id IS NULL;
    +----+--------+
    | id | amount |
    +----+--------+
    |  1 |    100 |
    |  3 |    300 |
    |  4 |    400 |
    +----+--------+
    3 rows in set (0.00 sec)

    mysql> SELECT a.* FROM product a LEFT JOIN product_details b
           ON a.id=b.id AND b.weight!=44 AND b.exist=1
           WHERE b.id IS NULL;
    +----+--------+
    | id | amount |
    +----+--------+
    |  1 |    100 |
    |  2 |    200 |
    |  3 |    300 |
    |  4 |    400 |
    +----+--------+
    4 rows in set (0.00 sec)

    mysql> SELECT a.* FROM product a LEFT JOIN product_details b
           ON a.id=b.id
           WHERE b.id is null OR b.weight=44 OR b.exist=1;
    +----+--------+
    | id | amount |
    +----+--------+
    |  1 |    100 |
    |  3 |    300 |
    |  4 |    400 |
    +----+--------+
    3 rows in set (0.00 sec)
     
     
     
  • 相关阅读:
    AJAX获取服务器当前时间
    Struts2的入门实例
    Java 测试技术3 Struts框架驱动(StrutsTestCase)
    Java单元测试技术1
    软件测试自动化:自动化工厂
    MySQL优化原理
    fetch_array()与fetch_assoc()的用法
    sometimesever js中创建数组,并往数组里添加元素
    将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键...
    php serialize讲解与json性能测试
  • 原文地址:https://www.cnblogs.com/sunson/p/2288967.html
Copyright © 2011-2022 走看看