teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

調査結果追記

2019/10/28 01:52

投稿

azuapricot
azuapricot

スコア2343

title CHANGED
File without changes
body CHANGED
@@ -34,7 +34,9 @@
34
34
 
35
35
  ```Python
36
36
  test_id_list=[1,2,3,4,5]
37
- queryset = TestMaster.objects.filter(id__in=test_id_list).order_by(#ここでUserMasterのlast_name, first_nameでorder_byしたい)
37
+ queryset = TestMaster.objects.filter(""" 絞り込み条件 """)
38
+ queryset2 = TestMaster.objects.filter(""" 絞り込み条件 """)
39
+ return queryset .union(queryset2).order_by('user_id__last_name', 'user_id__first_name')
38
40
  ```
39
41
 
40
42
  ---
@@ -85,4 +87,20 @@
85
87
 
86
88
  Google先生に聞いて色々変えてorder_byしてみましたが中々うまくいかず・・・。
87
89
 
88
- お時間ある方で、**Djangoの外部キーで参照した親テーブルのカラムをOrder_by **する方法ご存知の方いらっしゃいましたらご助力頂けますと幸いです。
90
+ お時間ある方で、**Djangoの外部キーで参照した親テーブルのカラムをOrder_by **する方法ご存知の方いらっしゃいましたらご助力頂けますと幸いです。
91
+
92
+ ---
93
+
94
+ ### 調べた後の追記
95
+
96
+ [複数のクエリをUNIONで結合](https://stackoverflow.com/questions/21223357/sql-request-with-case-in-order-by-throws-1-1st-order-by-term-does-not-match-a?lq=1)
97
+
98
+ > 単一のテーブルからレコードを選択する場合、それらのレコードの任意のものをソートに使用できます。
99
+
100
+ > ただし、複数のクエリをUNIONで結合する場合、並べ替えは結果全体に対して行われるため、結果の一部の列を順序付けに使用する必要があります。この場合、これは計算をクエリ自体に移動する必要があることを意味します。
101
+
102
+ ```Python
103
+ queryset .union(queryset2).order_by('user_id__last_name', 'user_id__first_name')
104
+ ```
105
+
106
+ UNION後にOrder_byしてるのがよろしくない・・・?

2

2019/10/28 01:52

投稿

azuapricot
azuapricot

スコア2343

title CHANGED
File without changes
body CHANGED
@@ -70,7 +70,17 @@
70
70
  ```log
71
71
  ORDER BY term does not match any column in the result set.
72
72
  ```
73
+ ---
74
+ **試したこと4**
75
+ ```Python
76
+ .order_by('user_id__last_name', 'user_id__first_name')
77
+ ```
78
+ **実行結果4**
79
+ ```log
80
+ ORDER BY term does not match any column in the result set.
81
+ ```
73
82
 
83
+
74
84
  ---
75
85
 
76
86
  Google先生に聞いて色々変えてorder_byしてみましたが中々うまくいかず・・・。

1

.

2019/10/28 01:45

投稿

azuapricot
azuapricot

スコア2343

title CHANGED
File without changes
body CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  id = models.AutoDield(primary_key=True)
18
18
  title = models.CharField(max_length=20, null=False)
19
- user_id = models.ForeinKey(UserMaster, db_column='user_id', on_delete=models.CASCADE, related_name='user')
19
+ user_id = models.ForeignKey(UserMaster, db_column='user_id', on_delete=models.CASCADE, related_name='user')
20
20
  ```
21
21
 
22
22
  **user_master.py**  (Model)