回答編集履歴
2
追記
answer
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
態々正規化されているテーブルを壊しているから、余計なunionが必要になるんです。
|
4
4
|
先ずは、そこから正しましょう。
|
5
|
+
カテゴリコードを商品テーブルに追加すれば、テーブルを分ける必要がなくなります。
|
5
6
|
|
6
7
|
質問のSQLではwhere 条件はcategory3に対してのみです。
|
7
8
|
一つ一つに条件を付けるか、以下の様に一旦括ったものに対しての条件にします。
|
1
追記
answer
CHANGED
@@ -1,4 +1,17 @@
|
|
1
1
|
> テキストではデータベースの商品テーブルがひとつだけですが、アレンジして商品のカテゴリごとに複数のテーブルを作り、UNION ALLで結合してみた
|
2
2
|
|
3
3
|
態々正規化されているテーブルを壊しているから、余計なunionが必要になるんです。
|
4
|
-
先ずは、そこから正しましょう。
|
4
|
+
先ずは、そこから正しましょう。
|
5
|
+
|
6
|
+
質問のSQLではwhere 条件はcategory3に対してのみです。
|
7
|
+
一つ一つに条件を付けるか、以下の様に一旦括ったものに対しての条件にします。
|
8
|
+
```SQL
|
9
|
+
select * from (
|
10
|
+
SELECT code,name,price FROM category1
|
11
|
+
UNION ALL
|
12
|
+
SELECT code,name,price FROM category2
|
13
|
+
UNION ALL
|
14
|
+
SELECT code,name,price FROM category3
|
15
|
+
) mrg
|
16
|
+
WHERE code=?
|
17
|
+
```
|