質問編集履歴

11

修正

2021/05/26 05:05

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  # 質問
2
2
 
3
- りんご2個以上バナナ2個以上を持っているユーザIDを取得したいです。
3
+ りんご2個以上」かつ「バナナ2個以上を持っているユーザIDを取得したいです。
4
4
 
5
5
 
6
6
 

10

修正

2021/05/26 05:05

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -150,7 +150,7 @@
150
150
 
151
151
  ※追記
152
152
 
153
- 以下SQL004でも期待する結果が取れて少しSQLが綺麗になったかと思いましたがりんごが1個、バナナが3個(またはそれ以外の4個以上のパターン)でも結果が0件にならないのでダメでした。
153
+ 以下SQL004でも期待する結果が取れて少しSQLが綺麗になったかと思いましたがりんごが1個、バナナが3個(またはそれ以外の合計が4個以上のパターン)でも結果が0件にならないのでダメでした。
154
154
 
155
155
  ```
156
156
 

9

修正

2021/05/25 20:31

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  # 質問
2
2
 
3
- りんご2個、バナナ2個を持っているユーザIDを取得したいです。
3
+ りんご2個以上、バナナ2個以上を持っているユーザIDを取得したいです。
4
4
 
5
5
 
6
6
 
@@ -64,7 +64,7 @@
64
64
 
65
65
  以下SQL001は結果が0件です。
66
66
 
67
- りんごが2個のwhere条件で既に結果にバナナが含まれていない為、2つめのバナナに関するwhere条件を満たせず0件になったと思われます。
67
+ りんごが2個以上のwhere条件で既に結果にバナナが含まれていない為、2つめのバナナに関するwhere条件を満たせず0件になったと思われます。
68
68
 
69
69
 
70
70
 
@@ -150,7 +150,7 @@
150
150
 
151
151
  ※追記
152
152
 
153
- 以下SQL004でも期待する結果が取れて少しSQLが綺麗になったかと思いましたがりんごが1個、バナナが3個でも結果が0件にならないのでダメでした。
153
+ 以下SQL004でも期待する結果が取れて少しSQLが綺麗になったかと思いましたがりんごが1個、バナナが3個(またはそれ以外の4個以上のパターン)でも結果が0件にならないのでダメでした。
154
154
 
155
155
  ```
156
156
 
@@ -172,7 +172,7 @@
172
172
 
173
173
  having
174
174
 
175
- sum(i.num) = 4
175
+ sum(i.num) >= 4
176
176
 
177
177
  ```
178
178
 

8

修正

2021/05/25 20:29

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -150,7 +150,7 @@
150
150
 
151
151
  ※追記
152
152
 
153
- 以下SQL004でも期待する結果が取れて少しSQLがきれいになったかと思いましたがりんごが1個、バナナが3個でも一致してした。
153
+ 以下SQL004でも期待する結果が取れて少しSQLが綺麗になったかと思いましたがりんごが1個、バナナが3個でも結果が0件にならなのでダメでした。
154
154
 
155
155
  ```
156
156
 

7

追記

2021/05/25 20:20

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -148,6 +148,36 @@
148
148
 
149
149
 
150
150
 
151
+ ※追記
152
+
153
+ 以下SQL004でも期待する結果が取れて少しSQLがきれいになったかと思いましたがりんごが1個、バナナが3個でも一致していました。
154
+
155
+ ```
156
+
157
+ /* SQL004 */
158
+
159
+ select
160
+
161
+ i.user_id
162
+
163
+ from items i
164
+
165
+ where
166
+
167
+ (i.name = 'りんご') or (i.name = 'バナナ')
168
+
169
+ group by
170
+
171
+ i.user_id
172
+
173
+ having
174
+
175
+ sum(i.num) = 4
176
+
177
+ ```
178
+
179
+
180
+
151
181
  # 環境
152
182
 
153
183
  - MariaDB 10.5.9

6

修正

2021/05/25 20:18

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  `num` INT(11) UNSIGNED NOT NULL,
28
28
 
29
- INDEX `user_id` (`name`) USING BTREE
29
+ INDEX `name` (`name`) USING BTREE
30
30
 
31
31
  )
32
32
 

5

修正

2021/05/25 20:10

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  `num` INT(11) UNSIGNED NOT NULL,
28
28
 
29
- INDEX `card_id` (`name`) USING BTREE
29
+ INDEX `user_id` (`name`) USING BTREE
30
30
 
31
31
  )
32
32
 

4

タグ追加

2021/05/25 20:09

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
File without changes

3

修正

2021/05/25 20:08

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -74,7 +74,7 @@
74
74
 
75
75
  select
76
76
 
77
- *
77
+ i.user_id
78
78
 
79
79
  from items i
80
80
 
@@ -98,7 +98,7 @@
98
98
 
99
99
  select
100
100
 
101
- *
101
+ i.user_id
102
102
 
103
103
  from items i
104
104
 
@@ -130,7 +130,7 @@
130
130
 
131
131
  select
132
132
 
133
- *
133
+ i.user_id
134
134
 
135
135
  from items i
136
136
 

2

環境追記

2021/05/25 20:07

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -145,3 +145,9 @@
145
145
 
146
146
 
147
147
  今回のようなケースではどのようなSQLが最適でしょうか?
148
+
149
+
150
+
151
+ # 環境
152
+
153
+ - MariaDB 10.5.9

1

修正

2021/05/25 20:06

投稿

daiki002
daiki002

スコア68

test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  以下SQL001は結果が0件です。
66
66
 
67
- りんごが2のwhere条件で既に結果にバナナが含まれていない為、2つめのwhere条件を満たせず0件になったと思われます。
67
+ りんごが2のwhere条件で既に結果にバナナが含まれていない為、2つめのバナナに関するwhere条件を満たせず0件になったと思われます。
68
68
 
69
69
 
70
70