*ブログに戻る →ここ です。


ANYサブクエリ
条件に一致する値を他のテーブルのカラムから複数ANY探し出す。 free91

Thursday,August,1,2013

今回2つのデータベースdbを使う
sadachika_shop
kittaka_shop
以下の二つのテーブル名
sadachi_newcustomer
kitta_customer

○特定のデータベース内のテーブル 
SHOW TABLES FROM sadachika_shop;
SHOW TABLES FROM Kittaka_shop;

○テーブル設定メモ
VARCHAR型なら、unique  その他のオプション default 'データなし', default 0, not null(データなし を許さない)
INT型なら、primary key

○テーブルを作る       ↓データベース名    ↓テーブル名   ↓カラム名                                ↓VARCHAR型(文字を格納する型)
mysql> create table sadachika_shop.sadachi_customer (sada_id int not null primary key, sada_name varchar(10) default '氏名データなし');
Query OK, 0 rows affected (1.49 sec)                          ↑INT型(数字)   ↑プライマリー(重複を許さない)    ↑デフォルト(データが格納されなければ表示されるメッセージ)
mysql> create table Kittaka_shop.kitta_newcustomer (kit_id int not null primary key, kit_name varchar(10) default '氏名データなし', kit_d date);
Query OK, 0 rows affected (0.30 sec)
○カラムの構造を見る       ↓データベース名      ↓テーブル名
mysql> show columns from sadachika_shop.sadachi_customer;            
Field          Type         Null   Key    Default        Extra
sada_id        int(11)      NO     PRI    NULL                  
sada_name      varchar(10)  YES           氏名データなし          
2 rows in set (0.52 sec)

mysql> show columns from Kittaka_shop.kitta_newcustomer;            
Field          Type         Null   Key    Default        Extra
kit_id         int(11)      NO     PRI    NULL                  
kit_name       varchar(10)  YES           氏名データなし
kit_d          date         YES           NULL       
3 rows in set (0.17 sec)

○値を入力する
mysql> insert into sadachika_shop.sadachi_customer values(1, '長谷川'),(2, '稲垣'),(3, '定近'), 
    ->(4, '橘高'),(5, '平山'),(6, '藤原'), (7, '松本'),(8, '小林'),
    ->(9, '三谷'),(10, '坂本'),(11, '楠'),(12, '中島');
Query OK, 12 rows affected (0.13 sec)
Records: 12 Duplicates: 0 Warnings: 0

mysql> insert into Kittaka_shop.kitta_newcustomer values(1, '山田',20130801),(2, '藤原',20130801),(3, '渡辺',20130801), 
    ->(4, '坂本',20130801),(5, '船越',20130801),(6, '安藤',20130801), (7, '平山',20130801),(8, '高垣',20130801),
    ->(9, '定近',20130801),(10, '橘高',20130801),(11, '山脇',20130801),(12, '三谷',20130801);
Query OK, 12 rows affected (0.05 sec)
Records: 12 Duplicates: 0 Warnings: 0

○テーブルの中身の表示 
mysql> select * from sadachika_shop.sadachi_customer;
sada_id   sada_name
1         長谷川
2         稲垣
3         定近*重複
4         橘高*重複
5         平山*重複
6         藤原*重複
7         松本
8         小林
9         三谷*重複
10        坂本*重複
11        楠
12        中島

mysql> select * from Kittaka_shop.kitta_newcustomer;
kit_id    kit_name   kit_d
1         山田       2013-08-01
2         藤原*重複  2013-08-01
3         渡辺       2013-08-01
4         坂本*重複  2013-08-01
5         船越       2013-08-01
6         安藤       2013-08-01
7         平山*重複  2013-08-01
8         高垣       2013-08-01
9         定近*重複  2013-08-01
10        橘高*重複  2013-08-01
11        山脇       2013-08-01
12        三谷*重複  2013-08-01

○○データの取得
○○「kitta_newcustomer」テーブルの「kit_name」カラムの値が「sadachi_customer」テーブルの「sada_name」カラムに格納されている値を探す。
                         ↓データベース名      ↓テーブル名
mysql> select * FROM sadachika_shop.sadachi_customer 
    -> WHERE sada_name = ANY (select kit_name FROM Kittaka_shop.kitta_newcustomer);
               ↑カラム名 ↑ANYは、条件に該当する複数の値を探す
sada_id   sada_name
3         定近
4         橘高
5         平山
6         藤原
9         三谷
10        坂本



* 参考にしたサイトは→ こちら です。

これは赤色の文字例です。

これは青色の文字例です。