質問編集履歴

3

調査結果追記

2019/10/28 01:52

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
File without changes
test CHANGED
@@ -70,7 +70,11 @@
70
70
 
71
71
  test_id_list=[1,2,3,4,5]
72
72
 
73
- queryset = TestMaster.objects.filter(id__in=test_id_list).order_by(#ここでUserMasterのlast_name, first_nameでorder_byしたい)
73
+ queryset = TestMaster.objects.filter(""" 絞り込み条件 """)
74
+
75
+ queryset2 = TestMaster.objects.filter(""" 絞り込み条件 """)
76
+
77
+ return queryset .union(queryset2).order_by('user_id__last_name', 'user_id__first_name')
74
78
 
75
79
  ```
76
80
 
@@ -173,3 +177,35 @@
173
177
 
174
178
 
175
179
  お時間ある方で、**Djangoの外部キーで参照した親テーブルのカラムをOrder_by **する方法ご存知の方いらっしゃいましたらご助力頂けますと幸いです。
180
+
181
+
182
+
183
+ ---
184
+
185
+
186
+
187
+ ### 調べた後の追記
188
+
189
+
190
+
191
+ [複数のクエリを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)
192
+
193
+
194
+
195
+ > 単一のテーブルからレコードを選択する場合、それらのレコードの任意のものをソートに使用できます。
196
+
197
+
198
+
199
+ > ただし、複数のクエリをUNIONで結合する場合、並べ替えは結果全体に対して行われるため、結果の一部の列を順序付けに使用する必要があります。この場合、これは計算をクエリ自体に移動する必要があることを意味します。
200
+
201
+
202
+
203
+ ```Python
204
+
205
+ queryset .union(queryset2).order_by('user_id__last_name', 'user_id__first_name')
206
+
207
+ ```
208
+
209
+
210
+
211
+ UNION後にOrder_byしてるのがよろしくない・・・?

2

2019/10/28 01:52

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,26 @@
142
142
 
143
143
  ```
144
144
 
145
+ ---
146
+
147
+ **試したこと4**
148
+
149
+ ```Python
150
+
151
+ .order_by('user_id__last_name', 'user_id__first_name')
152
+
153
+ ```
154
+
155
+ **実行結果4**
156
+
157
+ ```log
158
+
159
+ ORDER BY term does not match any column in the result set.
160
+
161
+ ```
162
+
163
+
164
+
145
165
 
146
166
 
147
167
  ---

1

.

2019/10/28 01:45

投稿

azuapricot
azuapricot

スコア2341

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
  title = models.CharField(max_length=20, null=False)
36
36
 
37
- user_id = models.ForeinKey(UserMaster, db_column='user_id', on_delete=models.CASCADE, related_name='user')
37
+ user_id = models.ForeignKey(UserMaster, db_column='user_id', on_delete=models.CASCADE, related_name='user')
38
38
 
39
39
  ```
40
40