帮我看一下一个SQL查询语句.

来源:百度知道 编辑:UC知道 时间:2024/06/07 15:44:30
SELECT subject_id, subject_title, DATE_FORMAT(subject_add_time,'%Y-%M-%D') as subject_release_time FROM subjuects WHERE subject_release_time ='2009-June-11th' ORDER BY subject_release_time DESC LIMIT 0, 5
在MYSQL中使用的,提示说#1054 - Unknown column 'subject_release_time' in 'where clause',难道别名不能用在WHERE部分??

sql的编译顺序是:from>where>select>group by>having>order by。
由于先编译where条件的时候还没有编译到select条件,因此别名subject_release_time 对于where条件来说不可用。修改如下:

SELECT subject_id, subject_title, DATE_FORMAT(subject_add_time,'%Y-%M-%D') as subject_release_time FROM subjuects WHERE DATE_FORMAT(subject_add_time,'%Y-%M-%D') ='2009-June-11th' ORDER BY subject_release_time DESC LIMIT 0, 5;
或者
select * from
(SELECT subject_id, subject_title, DATE_FORMAT(subject_add_time,'%Y-%M-%D') as subject_release_time FROM subjuects) where subject_release_time ='2009-June-11th' ORDER BY subject_release_time DESC LIMIT 0, 5;

---
以上,希望对你有所帮助。