mysql:7929
From: "K-A" <"K-A" <k-anzai@xxxxxxxxxx>>
Date: Fri, 20 Jun 2003 18:20:37 +0900
Subject: [mysql 07929] Re: SQL 文での WHERE 句の質問
お世話になっております、安齋です。 草薙様、菅原様、神野様メールありがとうございます。 tbdress_aと言うのはもともと連結される方のテーブルでして、 tball_dataと連結しています。 tbdress_a------------------------ id auto_increment all_data int(↓tball_dataのid) dress_type text('1,2,7') -------------------------------- tball_data------------------------ id auto_increment data_name text data_tel text data_fax text ・ ・ ・ -------------------------------- 親はtball_dataです。 子供をtbdress_aにしました。 子供は他にもtbdress_b〜eまでで、合計5人居ます。 草薙様のやり方を実行すると、 tbdress_aに、tbdress_a2という感じで子供を付けると言う方法ですよね。(多分) でその子らに数字を1つずつ持ってもらう・・・。 うまく説明出来ませんが、なんとか頭に描けています。すみません; ツリー状と言えばいいのか・・・; データが増えていったりした時の事を考えると そちらの方が良いですね、ちょっと量が多いので すこしずつ直していきたいと思います。 皆様ありがとうございました! 株式会社ビーアーティスト 安齋勝恵 ----- Original Message ----- From: "Koji KUSANAGI" <kusanagi@xxxxxxxxxx> To: <ml@xxxxxxxxxx> Sent: Friday, June 20, 2003 5:26 PM Subject: [mysql 07928] Re: SQL 文での WHERE 句の質問 > 草薙です。 > > >レコードの中身が複数、つまり > >dress_type = '5,7' > >と言うことです。 > > そのような設計の場合、神野様が [mysql 07923] で仰っているとおり、WHERE > IN (1, 3, 5) で抽出されないことは自明であるかと思います。 > > 個人的にはdress_type を int 型として、下記のようなテーブル連結を行った方 > が、後々の扱いがスマートになるような気がします。 > > mysql> create table tbdress (num int, dress_name varchar(10)); > Query OK, 0 rows affected (0.00 sec) > > mysql> create table tbdress_a ( num int, dress_type int ); > Query OK, 0 rows affected (0.00 sec) > > mysql> insert into tbdress values(1, 'dress A'); > Query OK, 1 row affected (0.00 sec) > > mysql> insert into tbdress values(2, 'dress B'); > Query OK, 1 row affected (0.00 sec) > > mysql> insert into tbdress_a values(1, 5 ); > Query OK, 1 row affected (0.00 sec) > > mysql> insert into tbdress_a values( 1, 7 ); > Query OK, 1 row affected (0.00 sec) > > mysql> insert into tbdress_a values( 2, 3 ); > Query OK, 1 row affected (0.00 sec) > > mysql> insert into tbdress_a values( 2, 4 ); > Query OK, 1 row affected (0.00 sec) > > mysql> select * from tbdress; > +------+------------+ > | num | dress_name | > +------+------------+ > | 1 | dress A | > | 2 | dress B | > +------+------------+ > 2 rows in set (0.00 sec) > > mysql> select * from tbdress_a; > +------+------------+ > | num | dress_type | > +------+------------+ > | 1 | 5 | > | 1 | 7 | > | 2 | 3 | > | 2 | 4 | > +------+------------+ > 4 rows in set (0.00 sec) > > mysql> select t1.num, t1.dress_name, t2.dress_type from tbdress t1 inner join tb > dress_a t2 on t1.num=t2.num; > +------+------------+------------+ > | num | dress_name | dress_type | > +------+------------+------------+ > | 1 | dress A | 5 | > | 1 | dress A | 7 | > | 2 | dress B | 3 | > | 2 | dress B | 4 | > +------+------------+------------+ > 4 rows in set (0.00 sec) > > mysql> select t1.num, t1.dress_name, t2.dress_type from tbdress t1 inner join tb > dress_a t2 on t1.num=t2.num where t2.dress_type in ( 1,3,5 ); > +------+------------+------------+ > | num | dress_name | dress_type | > +------+------------+------------+ > | 1 | dress A | 5 | > | 2 | dress B | 3 | > +------+------------+------------+ > 2 rows in set (0.00 sec) > > > > ---------------------------------------------------- > 草薙考司 <kusanagi@xxxxxxxxxx> >
7921 2003-06-20 16:33 ["K-A" <k-anzai@xxxxx] SQL 文での WHERE 句の質問 7922 2003-06-20 16:55 ┣[Koji KUSANAGI <kusan] 7924 2003-06-20 17:01 ┃┗["K-A" <k-anzai@xxxxx] 7925 2003-06-20 17:05 ┃ ┣[Kengo Jinno <kengo@x] 7928 2003-06-20 17:26 ┃ ┗[Koji KUSANAGI <kusan] -> 7929 2003-06-20 18:20 ┃ ┗["K-A" <k-anzai@xxxxx] 7923 2003-06-20 16:56 ┣[Kengo Jinno <kengo@x] 7927 2003-06-20 17:12 ┃┗["K-A" <k-anzai@xxxxx] 7932 2003-06-21 16:06 ┃ ┗[seiji takegata <take] 7934 2003-06-22 16:40 ┃ ┗[SUGAWARA Hajime <sug] 7935 2003-06-22 20:49 ┃ ┗[seiji takegata <take] 7926 2003-06-20 17:06 ┗[SUGAWARA Hajime <sug]