LEETCODE database 183. Customers Who Never Order
2016-02-29 07:09
375 查看
创建2张表 Customer and Order
插入的数据如下
值得注意的是 SELECT NAME FROM CUSTOMS,Orders 出来的结果是
+-------+
| NAME |
+-------+
| Joe |
| Joe |
| Henry |
| Henry |
| Sam |
| Sam |
| Max |
| Max |
+-------+并不是只有一行Name 相当于把2个表给相乘了起来 order表里面只有2个数据 所以是name*2 如果是3个数据就是name*3 也就是name会出现3次
INSERT INTO ORDER VALUE(3,4);
SELECT出来的结果是
mysql> select * from customers,orders;
+----+-------+----+------------+
| Id | Name | Id | CustomerId |
+----+-------+----+------------+
| 1 | Joe | 1 | 3 |
| 1 | Joe | 2 | 1 |
| 1 | Joe | 3 | 4 |
| 2 | Henry | 1 | 3 |
| 2 | Henry | 2 | 1 |
| 2 | Henry | 3 | 4 |
| 3 | Sam | 1 | 3 |
| 3 | Sam | 2 | 1 |
| 3 | Sam | 3 | 4 |
| 4 | Max | 1 | 3 |
| 4 | Max | 2 | 1 |
| 4 | Max | 3 | 4 |
+----+-------+----+------------+
所以我之前的做法
SELECT NAME FROM Customers,Orders
WHERE Customers.Id!=Orders.CustomerId; 是错误的
应该是
SELECT NAME FROM CUSTOMERS c WHERE c.Id
NOT IN(SELECT CustomerId FROM Orders o)
Create Table Customers( Id int not null, Name varchar(90) not null ); Create Table Orders( Id int not null, CustomerId int not null );
插入的数据如下
+----+-------+ | Id | Name | +----+-------+ | 1 | Joe | | 2 | Henry | | 3 | Sam | | 4 | Max | +----+-------+
+----+------------+ | Id | CustomerId | +----+------------+ | 1 | 3 | | 2 | 1 | +----+------------+
值得注意的是 SELECT NAME FROM CUSTOMS,Orders 出来的结果是
+-------+
| NAME |
+-------+
| Joe |
| Joe |
| Henry |
| Henry |
| Sam |
| Sam |
| Max |
| Max |
+-------+并不是只有一行Name 相当于把2个表给相乘了起来 order表里面只有2个数据 所以是name*2 如果是3个数据就是name*3 也就是name会出现3次
INSERT INTO ORDER VALUE(3,4);
SELECT出来的结果是
mysql> select * from customers,orders;
+----+-------+----+------------+
| Id | Name | Id | CustomerId |
+----+-------+----+------------+
| 1 | Joe | 1 | 3 |
| 1 | Joe | 2 | 1 |
| 1 | Joe | 3 | 4 |
| 2 | Henry | 1 | 3 |
| 2 | Henry | 2 | 1 |
| 2 | Henry | 3 | 4 |
| 3 | Sam | 1 | 3 |
| 3 | Sam | 2 | 1 |
| 3 | Sam | 3 | 4 |
| 4 | Max | 1 | 3 |
| 4 | Max | 2 | 1 |
| 4 | Max | 3 | 4 |
+----+-------+----+------------+
所以我之前的做法
SELECT NAME FROM Customers,Orders
WHERE Customers.Id!=Orders.CustomerId; 是错误的
应该是
SELECT NAME FROM CUSTOMERS c WHERE c.Id
NOT IN(SELECT CustomerId FROM Orders o)
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马