mysql外连接不支持ON解决方法
2013-10-25 12:04
441 查看
表:a: id
name age
other
b: id name
age other
SELECT * FROM b LEFT JOIN a ON a.age=b.age
UNION
SELECT * FROM b RIGHT JOIN a ON a.age=b.age
如何要把查询结果写入另一个表中,则需要把相同列合并,因为查询结果会生成两个name列,可能一个会为空,所以:
SELECT (CASE WHEN b.name is null THEN a.name ELSE b.name END)name,(CASE WHEN b.age is null THEN a.age ELSE b.age END)age FROM b LEFT JOIN a ON a.age=b.age
UNION
SELECT (CASE WHEN b.name is null THEN a.name ELSE b.name END)name,(CASE WHEN b.age is null THEN a.age ELSE b.age END)age FROM b RIGHT JOIN a ON a.age=b.age
name age
other
b: id name
age other
SELECT * FROM b LEFT JOIN a ON a.age=b.age
UNION
SELECT * FROM b RIGHT JOIN a ON a.age=b.age
如何要把查询结果写入另一个表中,则需要把相同列合并,因为查询结果会生成两个name列,可能一个会为空,所以:
SELECT (CASE WHEN b.name is null THEN a.name ELSE b.name END)name,(CASE WHEN b.age is null THEN a.age ELSE b.age END)age FROM b LEFT JOIN a ON a.age=b.age
UNION
SELECT (CASE WHEN b.name is null THEN a.name ELSE b.name END)name,(CASE WHEN b.age is null THEN a.age ELSE b.age END)age FROM b RIGHT JOIN a ON a.age=b.age
相关文章推荐
- MySQL 定时器EVENT学习
- 安装、重装MySQL时,出现could not start the service mysql error:0的解决办法
- MySQL GRANT REVOKE用法
- mysql的几个简单实用技巧
- mysql 一条命令直接加载主库数据到备库
- Mysql主主复制构架配置
- 巧用mysqld_multi实现多主对一从的mysql复制
- mysql配置文件my.cnf详解[部分]
- mysql修改数据库表权限
- 安装MySQL 5后无法启动解决方法
- Mysql修改密码
- C# mysql 插入数据,中文乱码
- mysql插入优化
- 批量修改mysql表结构信息
- GGTS grails project 链接MySql
- 一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
- 一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
- 一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
- MySQL 性能:使用 MySQL 5.7 实现每秒 50 万查询
- ubuntu 10.10编译安装mysql 提示libtoolt': No such file or directory的解决方法