質問編集履歴
1
order条件が漏れていたので追記しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
外部結合したテーブルを
|
1
|
+
外部結合したテーブルを重複処理してから関連テーブルのカラムでソートしたい
|
body
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
daily_reports = DailyReport.all
|
45
45
|
#各テーブルを外部結合したものを部署の優先度順に並び替え、uniqで重複を取り除いている。
|
46
|
-
daily_reports.uniq("daily_reports.id").from(daily_reports.joins("LEFT OUTER JOIN `users` ON `users`.`id` = `daily_reports`.`user_id` LEFT OUTER JOIN `departments_users` ON `departments_users`.`user_id` = `users`.`id` LEFT OUTER JOIN `departments` ON `departments`.`id` = `departments_users`.`department_id`").select("*"))
|
46
|
+
daily_reports.uniq("daily_reports.id").from(daily_reports.joins("LEFT OUTER JOIN `users` ON `users`.`id` = `daily_reports`.`user_id` LEFT OUTER JOIN `departments_users` ON `departments_users`.`user_id` = `users`.`id` LEFT OUTER JOIN `departments` ON `departments`.`id` = `departments_users`.`department_id`").order(sanitized_query).select("*")).select("*")
|
47
47
|
|
48
48
|
#部署名でソート
|
49
49
|
daily_reports = daily_reports.order("departments.name DESC")
|
@@ -53,7 +53,7 @@
|
|
53
53
|
```
|
54
54
|
4行目において以下のエラーメッセージが出力されていました。
|
55
55
|
|
56
|
-
Mysql2::Error: Duplicate column name 'id': SELECT DISTINCT * FROM (SELECT * FROM `daily_reports` LEFT OUTER JOIN `users` ON `users`.`id` = `daily_reports`.`user_id` LEFT OUTER JOIN `departments_users` ON `departments_users`.`user_id` = `users`.`id` LEFT OUTER JOIN `departments` ON `departments`.`id` = `departments_users`.`department_id`) subquery
|
56
|
+
Mysql2::Error: Duplicate column name 'id': SELECT DISTINCT * FROM (SELECT * FROM `daily_reports` LEFT OUTER JOIN `users` ON `users`.`id` = `daily_reports`.`user_id` LEFT OUTER JOIN `departments_users` ON `departments_users`.`user_id` = `users`.`id` LEFT OUTER JOIN `departments` ON `departments`.`id` = `departments_users`.`department_id`ORDER BY field(departments.id ,26,27,29,25,32,33,28,34,35,36,37,38)) subquery
|
57
57
|
```
|
58
58
|
|
59
|
-
ご教
|
59
|
+
ご教示お願い致します。
|