6、left join(下面以left join为例来连接两个表) 连接两个表,将常量表达式放入where子句中
select * from hopegaming_main.test_1234 t1 left join hopegaming_main.test_1235 t2 on t1.trade_id = t2.trade_id where t2.nick_name = 'wangwu''
结果只会显示符合where子句的数据,只要没有符合的都不会显示,因为它是筛选连接后的临时表中的数据,而on
只是连接,如果右边没有符合的数据,就显示null,而左边的数据都会显示,不会被过滤,这就是where和on最大的区别
建表和插入数据的脚本:
CREATE TABLE `hopegaming_main`.`test_1234` ( `id` varchar(30) NOT NULL COMMENT '身份证号', `name` varchar(100) DEFAULT NULL COMMENT '姓名', `trade_id` varchar(100) DEFAULT NULL COMMENT '交易id', `gender` tinyint(4) DEFAULT NULL COMMENT '性别', `birthday` timestamp(6) NOT NULL COMMENT '出生日期', PRIMARY KEY (`id`) USING BTREE, KEY `idx_trade_id` (`trade_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; INSERT INTO hopegaming_main.test_1234 (id, name, trade_id, gender, birthday) VALUES('1', 'zhangsan', '123', 0, CURRENT_TIMESTAMP(6)), ('2', 'zhaosi', '124', 0, CURRENT_TIMESTAMP(6)), ('3', 'wangwu', '125', 0, CURRENT_TIMESTAMP(6)), ('4', 'maqi', '126', 0, CURRENT_TIMESTAMP(6)); CREATE TABLE `hopegaming_main`.`test_1235` ( `id` varchar(30) NOT NULL COMMENT '身份证号', `nick_name` varchar(100) DEFAULT NULL COMMENT '别名', `trade_id` varchar(100) DEFAULT NULL COMMENT '交易id', `address` varchar(100) DEFAULT NULL COMMENT '地址', `email` varchar(6) NOT NULL COMMENT '出生日期', PRIMARY KEY (`id`) USING BTREE, KEY `idx_trade_id` (`trade_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; INSERT INTO hopegaming_main.test_1235 (id, nick_name, trade_id, address, email) VALUES('1', 'zhangsan', '123', 'beijing', '0000'), ('2', 'wangwu', '123', 'tianjin', '1111'), ('3', 'maqi', '124', 'shanghai', '2222'), ('4', 'yangliu', '127', 'shanxi', '3333');
总结
到此这篇关于Mysql中where与on的区别及何时使用的文章就介绍到这了,更多相关Mysql中where与on区别内容请搜索
更多Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
mysql数据表字体大小如何利用navicat for mysql改变?
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。