2013-03-04 88 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