1

我有一个使用 php 活动记录的 codeigniter 项目。当我运行此查询时,有 3 个表(用户、打孔和作业)

$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 变体。

4

3 回答 3

2

由于您要连接多个表,因此当列不唯一时,您需要指定要使用的表列。在您的情况下,您需要指定 id 列来自哪个表。

于 2013-03-04T04:36:47.360 回答
1

id你的order by id, 因为userspunches表也有 id

$records = Punches::find_by_sql("... ORDER BY last_name, TABLENAME.id"); 
于 2013-03-04T04:39:09.970 回答
0

感谢建议我在 phpmyadmin 中运行它的人……这有助于快速发现错误。我需要 tablename.id

于 2013-03-04T04:51:24.967 回答