次のテーブルがあります。
モール:
+-----------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------------------+------+-----+---------+----------------+
| MallID | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| Name | varchar(45) | NO | | NULL | |
+-----------+----------------------+------+-----+---------+----------------+
店:
+------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------------------+------+-----+---------+----------------+
| StoreID | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| MallID | smallint(5) unsigned | NO | MUL | NULL | |
| Name | varchar(45) | NO | | NULL | |
| Revenue | int(10) | NO | | NULL | |
+------------+----------------------+------+-----+---------+----------------+
お客様:
+------------+----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------------------+------+-----+---------+----------------+
| CustomerID | smallint(5) unsigned | NO | PRI | NULL | auto_increment |
| StoreID | smallint(5) unsigned | NO | MUL | NULL | |
| Name | varchar(45) | NO | | NULL | |
| Age | smallint(3) | NO | | NULL | |
+------------+----------------------+------+-----+---------+----------------+
Store.MallID
はの外部キーでMall.MallID
、Customer.StoreID
はの外部キーですStore.StoreID
1 - 総店舗収益が 100000 を超えるすべてのモールを選択したいと考えています。
select * from Mall where 100000 < ( select sum(Revenue) from Store where Mall.MallID = Store.MallID);
2 - 顧客がいないモールの名前を選択したい。
select Name from Mall where 0 = ( select count(*) from Customer, Store where Mall.MallID = Store.MallID and Store.StoreID = Customer.StoreID);
これらのクエリは正しいですか?