2013-03-04 85 views
1

我有一个使用php活动记录的codeigniter项目。有3个表格(用户,打孔和作业)当我运行此查询时php activerecord ORDER BY导致查询失败

$records = Punches::find_by_sql("Select * from jobs,users,punches where jobs.job_id = $job_id AND punches.job_id = $job_id AND punches.id= users.id AND NOT ISNULL(end_time) ORDER BY last_name,id "); 

查询失败。如果我把这个命令拿出来,它就可以工作了。请注意我已经使用了我能想到的ORDER BY的每个变体。

+1

忘记DESC或ASC ..? – 2013-03-04 04:35:30

+0

这个查询在phpmyadmin中运行?什么是错误? – 2013-03-04 04:35:34

+1

只是一个猜测,但做多个表共享列名'ID'或姓氏? – 2013-03-04 04:36:10

回答

1

是spesific在你order by idid,因为userspunches表有ID太

$records = Punches::find_by_sql("... ORDER BY last_name, TABLENAME.id"); 
+0

优秀的这解决了它谢谢 – ed209 2013-03-04 04:50:22

2

由于您要加入多个表格,因此您需要指定在列不唯一时使用哪些表格列。在你的情况下,你需要指定id列来自哪个表。

0

感谢谁建议我在phpMyAdmin ......,有助于迅速发现错误运行它。我需要tablename.id