解决方案 »
- 数据查询时,查询速度和查询次数的比较
- 错误调查:table is full,cannot find a free slot for an undo log
- JSP访问mysql数据库取一条数据时,速度很慢。。求优化方案!
- 求一个能生成MYSQL数据库说明文档的工具
- 请教两表数据相加问题
- 高手来帮看一下这段储存过程, 导入失败, apache的进程占用100%cpu
- 请帮忙:下载Navicat
- mysql-front2.5为什么不能连接到mysql服务器(在线等待..急............)
- CURRENT_DATE 日期函数的困惑
- MySQL安装卸载后重新安装问题
- 查询一个表的数据写到一个新的表中,这样写错了么?
- 求一个sql语句,关于统计的
from a left join b on a.i=b.i
left join c on a.i=b.i
用if方法可以实现:代码如下:
SELECT DISTINCT a.i AS 'a.i',IF(b.i!=a.i,-1,b.i) AS 'b.i',IF(c.i!=a.i,-1,c.i) AS 'c.i'
FROM a,b,c
WHERE a.i=b.i AND a.i=c.i OR a.i=c.i AND a.i!=b.i OR a.i=b.i AND a.i!=c.i能否直接用查询条件而不是用if或ifnull进行筛选得到目标结果呢?
From A Left Join B on A.i=B.i
Left JOin C on A.i=C.i
-> from a left join b on a.i=b.i
-> left join c on a.i=c.i;
+------+----------------+----------------+
| i | ifnull(b.i,-1) | ifnull(c.i,-1) |
+------+----------------+----------------+
| 1 | 1 | -1 |
| 2 | 2 | -1 |
| 3 | 3 | -1 |
| 4 | -1 | 4 |
| 5 | -1 | 5 |
| 6 | -1 | 6 |
+------+----------------+----------------+
6 rows in set (0.06 sec)mysql>