码迷,mamicode.com
首页 > 其他好文 > 详细

Day04 多表查询

时间:2017-04-03 23:47:57      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:appdata   sql   use   cli   data   外连接   bsp   bad   无效   

1. 笛卡尔集
 
笛卡尔集会在下面条件下产生:
  • 省略连接条件
  • 连接条件无效
  • 所有表中的所有行互相连接
 
为了避免笛卡尔集, 可以在 WHERE加入有效的连接条件。
 
2. Oracle连接
 
技术分享
技术分享
 
3. 等值连接
技术分享
 
技术分享
 
4. 表的别名
 
技术分享
 技术分享
技术分享
 技术分享
 
 
5. 连接多个表
技术分享
 
技术分享
 
6. 非等值连接
 技术分享
技术分享
 
7. 内连接和外连接
 技术分享
技术分享
 
技术分享
 
8. 自连接
技术分享
 
技术分享
 
9. 1999连接
 
技术分享
 技术分享
 
SQL语句的多表查询方式:
 
例如:按照department_id查询employees(员工表)和departments(部门表)
的信息。
方式一(通用型):SELECT ... FROM ... WHERE
SELECT e.last_name,e.department_id,d.department_name
FROM employees e,departments d
where e.department_id = d.department_id
 
方式二:SELECT ... FROM ... NATURAL JOIN ...
有局限性:会自动连接两个表中相同的列(可能有多个:department_id和manager_id)
SELECT last_name,department_id,department_name
FROM employees
NATURAL JOIN departments
 
方式三:SELECT ... JOIN ... USING ...
有局限性:好于方式二,但若多表的连接列列名不同,此法不合适
SELECT last_name,department_id,department_name
FROM employees
JOIN departments
USING(department_id)
 
方式四:SELECT ... FROM ... JOIN ... ON ...
常用方式,较方式一,更易实现外联接(左、右、满)
SELECT last_name,e.department_id,department_name
FROM employees e
JOIN departments d
ON e.department_id = d.department_id
 
 
--内连接
    1)
    --等值连接
    --不等值连接
    2)
    --非自连接
    --自连接
 
--外连接
    --左外连接、右外连接、满外连接

 

 

Day04 多表查询

标签:appdata   sql   use   cli   data   外连接   bsp   bad   无效   

原文地址:http://www.cnblogs.com/fengze/p/6663950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!