回答編集履歴

2

追記

2020/10/28 12:48

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -5,6 +5,8 @@
5
5
  態々正規化されているテーブルを壊しているから、余計なunionが必要になるんです。
6
6
 
7
7
  先ずは、そこから正しましょう。
8
+
9
+ カテゴリコードを商品テーブルに追加すれば、テーブルを分ける必要がなくなります。
8
10
 
9
11
 
10
12
 

1

追記

2020/10/28 12:48

投稿

sazi
sazi

スコア25327

test CHANGED
@@ -5,3 +5,29 @@
5
5
  態々正規化されているテーブルを壊しているから、余計なunionが必要になるんです。
6
6
 
7
7
  先ずは、そこから正しましょう。
8
+
9
+
10
+
11
+ 質問のSQLではwhere 条件はcategory3に対してのみです。
12
+
13
+ 一つ一つに条件を付けるか、以下の様に一旦括ったものに対しての条件にします。
14
+
15
+ ```SQL
16
+
17
+ select * from (
18
+
19
+ SELECT code,name,price FROM category1
20
+
21
+ UNION ALL
22
+
23
+ SELECT code,name,price FROM category2
24
+
25
+ UNION ALL
26
+
27
+ SELECT code,name,price FROM category3
28
+
29
+ ) mrg
30
+
31
+ WHERE code=?
32
+
33
+ ```