sql INNER JOIN 取得两个表中存在连接匹配关系的记录(mysql)
2017-03-01 22:44
351 查看
首先:JOIN 通常与 ON 关键字搭配使用
其次我们来看我们的两个表格:
table1:
table2:
在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。
例如我要取到table1和table2之中 age1和age2相同的结果并且结合起来:
SELECT * FROM table1 INNER JOIN table2 ON table1.age1 = table2.age1;
在这里使用inner join 来联合table1和table2
在使用INNER jion时,on和where条件的区别如下:
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
在这里我们使用on 条件是 table1中的age1和table2中的age2相同,那么我们运行结果如下:
是否输出的结果把两表给结合起来了,你们发现,age1不同的数据并没有输出出来,其实这样的结果比较像数学中的交集呢?这个就是 INNER jion
其次我们来看我们的两个表格:
table1:
table2:
在这里,INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。
例如我要取到table1和table2之中 age1和age2相同的结果并且结合起来:
SELECT * FROM table1 INNER JOIN table2 ON table1.age1 = table2.age1;
在这里使用inner join 来联合table1和table2
在使用INNER jion时,on和where条件的区别如下:
1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
在这里我们使用on 条件是 table1中的age1和table2中的age2相同,那么我们运行结果如下:
是否输出的结果把两表给结合起来了,你们发现,age1不同的数据并没有输出出来,其实这样的结果比较像数学中的交集呢?这个就是 INNER jion
相关文章推荐
- mysql 存在该记录则更新,不存在则插入的sql
- Mysql 插入记录时检查记录是否已经存在,存在则更新,不存在则插入记录SQL
- 使用连接(JOIN)来代替子查询(Sub-Queries) mysql优化系列记录
- user表中存在多条相同user不同host用户信息时MySQL该匹配哪条记录登录?
- 关于mysql inner join 连接查询的优化
- mysql 存在该记录则更新,不存在则插入记录的sql
- (转载)mysql 存在该记录则更新,不存在则插入记录的sql
- mysql 存在该记录则更新,不存在则插入记录的sql
- mysql 存在该记录则更新,不存在则插入记录的sql
- mysql多表连接查询inner/left/right/full/cross join
- mysql 存在该记录则更新,不存在则插入记录的sql
- sql inner join 连接查询
- sql语句自动匹配两个表两个字段内容相似的记录
- mysql 存在该记录则更新,不存在则插入记录的sql
- mysql的两个技巧(key记录存在则替换,不存在则插入和key记录存在则更新,不存在则插入)
- SQLSERVER2000中比较两个字段的记录存在包含关系的问题
- 用Nhibernate连接多个数据库,两个Mysql,一个Sql。还有关于异常和错误码的讨论。包含源代码
- mysql 存在该记录则更新,不存在则插入记录的sql
- 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
- 两个sql查询语句之间的左连接left join