MySQL中使用子查询时用in来限定外部查询的取值范围,当内部与外部查询相比较的字段值有一个为空时,结果集中就会被过滤掉,但是,在生成结果集的SQL语句后加上相关的查询条件时还是可以将要比较的字段值为空所在的那条记录正确完整的显示出来。
不理解……,请教(急)!谢谢……
不理解……,请教(急)!谢谢……
解决方案 »
- 哪种连接方式好?
- 为什么我的Mysql修改不了管理员密码
- 关于MYSQL导入TXT文本的问题在线求助!
- 两个表都有id字段用left join连接后怎么分别获取
- MYSQL如何设置大小写敏感
- “DBX Error: Invalid Username/Password”(Delphi)
- 谁知道这个怎么解决 我搞了好几天了 急的蛋疼
- 为什麽会报语法错误
- 在线等,sql语句,字段为年月日时分秒,在写where时只判断年月日
- mysql 的sql语法错误提示能智能一些吗?
- 连接MySQL数据库问题。为什么在第二个函数中con说是java.lang.NullPointException?
- MySQL 子查询中已经被过滤的记录还可以显示?
+----+------+
| id | c1 |
+----+------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | NULL |
| 9 | NULL |
| 10 | 10 |
+----+------+
10 rows in set (0.00 sec)mysql> select *
-> from t1
-> where c1 in (1,4,5,7,10,null);
+----+------+
| id | c1 |
+----+------+
| 1 | 1 |
| 4 | 4 |
| 5 | 5 |
| 7 | 7 |
| 10 | 10 |
+----+------+
5 rows in set (0.00 sec)
mysql> select *
-> from t1
-> where c1 in (1,4,5,7,10,null)
-> or c1 is null;
+----+------+
| id | c1 |
+----+------+
| 1 | 1 |
| 4 | 4 |
| 5 | 5 |
| 7 | 7 |
| 8 | NULL |
| 9 | NULL |
| 10 | 10 |
+----+------+
7 rows in set (0.00 sec)mysql>
wage_infor.employee_Name,employee_infor.sex, wage_infor.Basic_Wage,
wage_infor.Allowance, wage_infor.OverTime_Wage,
wage_infor.Bounty , wage_infor.deduct,
wage_infor.Total_Wage,
wage_infor.beizhu
FROM wage_infor INNER JOIN employee_infor ON wage_infor.employee_ID = employee_infor.employee_ID
where Total_Wage in
(select (Basic_Wage+Allowance+OverTime_Wage+Bounty-deduct) from wage_infor )
and (wage_infor.employee_ID=1 or wage_infor.employee_Name=111)注意这对括号()
and (wage_infor.employee_ID=1 or wage_infor.employee_Name=111)你的SQL语句可以优化