当我使用 LEFT JOIN 查询时
SELECT employees.eno,employees.name,employees.dept,attendanceIn.attIn FROM `employees`
LEFT JOIN attendanceIn ON employees.eno = attendanceIn.eno
WHERE date(attIn) like '2016-07-02%'
Run Code Online (Sandbox Code Playgroud)
我得到的是,
ype*_*eᵀᴹ 12
将WHERE date(attIn) like '2016-07-02%'被转换LEFT连接到INNER一起。条件应移至ON子句。
还:
LIKE用于日期比较不是一个好习惯date()在比较之前在列上使用函数(如)会使索引无用。最好使条件sargable。查询更正:
SELECT e.eno, e.name, e.dept, a.attIn
FROM employees AS e
LEFT JOIN attendanceIn AS a
ON e.eno = a.eno
AND a.attIn >= '2016-07-02'
AND a.attIn < '2016-07-03' ;
Run Code Online (Sandbox Code Playgroud)
在SQLfiddle测试。
| 归档时间: |
|
| 查看次数: |
17379 次 |
| 最近记录: |