[前][次][番号順一覧][スレッド一覧]

mysql:4039

From: Minoru Fukuda <Minoru Fukuda <fukuda@xxxxxxxxxx>>
Date: Wed, 18 Jul 2001 18:17:28 +0900
Subject: [mysql 04039] VIEW, UNION の代替方法

こんにちは、MySQL 初心者の福田@キノルです。

これまで、PostgreSQL を使っていたのですが、実行スピードにものたりないので
MySQL を検討しています。ただ MySQL には VIEW や UNION の機能がないので
以下のような場合には、どうしたら良いか困っています。
お知恵を貸してください。

在庫管理用のデータベースなのですが、以下の2つの入出庫に関するテーブルと、
そのレコードがあるとします。

create table tableNyuuko (
        nyuukoID        integer auto_increment primary key,
        kazu            integer,
        shouhinmei      text
);
create table tableShukko (
        shukkoID        integer auto_increment primary key,
        kazu            integer,
        shouhinmei      text
);

mysql> select * from tableNyuuko;
+----------+------+------------+
| nyuukoID | kazu | shouhinmei |
+----------+------+------------+
|        1 |   10 | A          |
|        2 |   20 | B          |
|        3 |   30 | C          |
+----------+------+------------+
3 rows in set (0.00 sec)

mysql> select * from tableShukko;
+----------+------+------------+
| shukkoID | kazu | shouhinmei |
+----------+------+------------+
|        1 |    3 | A          |
|        2 |    4 | B          |
+----------+------+------------+
2 rows in set (0.01 sec)

こういった場合 Postgre など、VIEW, UNION が使える DBMS では

CRREATE VIEW viewNyuuShukko AS
SELECT kazu AS nyuukoSuu, 0 AS shukkoSuu, shouhinmei
UNION ALL
SELECT 0 AS nyuukoSuu, kazu AS shukkoSuu, shouhinmei;

と言った具合で、いったん UNION を使った VIEW を作り、

SELECT SUM(nyuukoSuu), SUM(shukkoSuu), shouhinmei
FROM viewNyuuShukko
GROUP BY shouhinmei;

で、以下のような入出庫の表を得ることができていました。

+-----------+-----------+------------+
| nyuukoSuu | shukkoSuu | shouhinmei |
+-----------+-----------+------------+
|        10 |         3 | A          |
|        20 |         4 | B          |
|        30 |         0 | C          |
+-----------+-----------+------------+

MySQL でこのような表を得るためには、もちろん VIEW, UNION が
使えないと思いますが、どう言った方法で実現できるのでしょうか?

よろしくお願いします。

-- 
福田稔 Minoru Fukuda
fukuda@xxxxxxxxxx
kinol interactive inc.
http://www.kinol.co.jp

[前][次][番号順一覧][スレッド一覧]

->    4039 2001-07-18 18:17 [Minoru Fukuda <fukud] VIEW, UNION の代替方法                  
      4040 2001-07-19 04:11 ┗[とみたまさひろ <tomm]                                       
      4044 2001-07-19 11:58  ┗[Minoru Fukuda <fukud]                                     
      4082 2001-07-29 15:16   ┗[とみたまさひろ <tomm]