では実際にサブクエリを操作してみる。
今回も復習をかねて新しいテーブルを作成する
product2テーブルを作成
create table product2 (id int(10), name varchar(20));
データを追加する
insert into product2 values (1, '作業用PC'), (2, 'A4ノート'), (3, 'バインダー'), (4, 'タブレット');
amountテーブルを作成
create table amount (product_id int(10), count int(10));
データを追加する
insert into amount values (3,15), (5, 20), (5, 10), (4, 13);
amountテーブル作成
idが重複しているため、idを更新する
更新するためには UPDATE文を利用する
構文
UPDATE [テーブル名] SET [更新する内容] WHERE [条件式];
count = 20のフィールドの product_id を 2に更新する
update amount set product_id = 2 where count = 20;
product_id を更新することができた
product_id = 5 のデータも 1に更新する
update amount set product_id = 1 where count = 10;
これで全ての更新は完了した
ではここから実際にサブクエリを使って、countが一番少ないデータを取得してみる
product2テーブル
amountテーブル
select * from product2 where id = (select product_id from amount order by count asc limit 1);
amountテーブルでは、 id = 1の count が 10で一番少ないため
サブクエリを利用して、countが一番少ないデータを取得することができた。
サブクエリの結果が複数の場合
新しいテーブルを作成する
criantテーブルを作成
create table criant (id int(10), name varchar(20), menu_id int(10));
データを追加する
insert into criant (id, name, menu_id) values (1, '鈴木一郎', 1), (2, '佐藤花子', 3), (3, '織田五郎', 5), (4, '平山一雄', 2);