数据库查询语句的左右连接和内连接
2014-08-20 23:38
441 查看
一般所说的左连接,外连接是指左外连接,右外连接。
1、先说左外连接和右外连接:
先来查看一下我们要测试的两个表的数据:
select * from t1;
select * from t2;
对于左外联接:
SQL LEFT JOIN 关键字
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ONtable_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
select t1.id,t1.`name`,t2.id,t2.age from t1LEFT JOIN t2 ON t1.id= t2.id;
对于右外连接:
语法:
注释:在某些数据库中,
RIGHT JOIN 称为 RIGHT OUTER JOIN。
select t1.id,t1.`name`,t2.id,t2.age from t1RIGHT JOIN t2 ON t1.id= t2.id;
从上面的显示你可以看出:左外连接是以左边的表为基准。通俗的讲,先将左边的表全部显示出来,然后右边的表id与左边表id相同的记录就“拼接”上去,比如说id为1的记录。如果没有匹配的id,比如说t1中id为2的t2中就没有。那边就以null显示。
右外连接过程正好相反。
2、再看内连接:
语法:
注释:INNER
JOIN 与 JOIN 是相同的。
select * from t1 inner join t2 ont1.id=t2.id;
看到没有? 只有一条记录。内连接就是只取出符合过滤条件的记录 也就是t1.id=t2.id 那么符合t1.id=t2.id的记录只有id=1这一条,所以只显示一条。 不像外连接,是将你作为基准的表(左外连接就是左边表为基准,右外连接就是右边表为基准)的所有行都显示出来。
1、先说左外连接和右外连接:
先来查看一下我们要测试的两个表的数据:
select * from t1;
id | name |
1 | aaa |
2 | bbb |
id | age |
130 |
SQL LEFT JOIN 关键字
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ONtable_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
select t1.id,t1.`name`,t2.id,t2.age from t1LEFT JOIN t2 ON t1.id= t2.id;
id | name | id1 | age |
1 | aaa | 1 | 20 |
2 | bbb | null | null |
语法:
SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中,
RIGHT JOIN 称为 RIGHT OUTER JOIN。
select t1.id,t1.`name`,t2.id,t2.age from t1RIGHT JOIN t2 ON t1.id= t2.id;
id | name | id1 | age |
1 | aaa | 1 | 20 |
null | null | 3 | 30 |
右外连接过程正好相反。
2、再看内连接:
语法:
SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:INNER
JOIN 与 JOIN 是相同的。
select * from t1 inner join t2 ont1.id=t2.id;
id | name | id1 | age |
1 | aaa | 1 | 20 |
相关文章推荐
- Oracle 数据库连接查询SQL语句
- hibernate left join 多表连接查询不到结果,但生成的查询语句在数据库可以查询
- 查看存储过程,查看死锁进程语句,查询表占的空间,数据库连接
- 第17天(就业班) jdbc连接数据库、statement执行DDL语句、statement执行DQL查询语句、preparedstatement、callablestatement、通讯录改造jdb
- 关于数据库查询语句SqlDataReader的连接释放问题的解决办法
- 数据库查询左右连接
- 15.数据库原理 事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案==
- 内连接,外连接,交叉连接--数据库查询语句学习
- 如何在当前连接的数据库建立查询语句或编辑数据库脚本
- C# 简单连接数据库并执行SQL查询语句
- Oracle 10g数据库基础之基本查询语句-下-连接&子查询
- Day51、数据库、远程连接服务器、查询select语句、form字句、where字句、order by 子句
- 连接数据库的步骤SQL Server 与mysql 以及一些数据库查询语句
- 查询数据库连接语句
- 数据库查询语句的左连接和右连接
- SQL语句远程连接其他数据库查询表数据
- R语言使用ODBC连接数据库PostgreSQL查询语句中含有""处理方法
- java连接数据库(查询语句)
- mysql 数据库查询语句 左外连接 右外连接 和内连接区别
- 数据查询基础和C#连接数据库语句