1

PHPアクティブレコードを使用するcodeigniterプロジェクトがあります。このクエリを実行すると、3 つのテーブル (users、punches、および job) があります。

$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があるためid、あなたの中で具体的にしてくださいorder by iduserspunches

$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 に答える