-- 添加数据以及如何查询
CREATE DATABASE table;
CREATE TABLE t_shop(
_id INT PRIMARY KEY AUTO_INCREMENT,
_shopcode VARCHAR(30),
_name VARCHAR(40),
_fk INT
);
INSERT INTO t_shop(_shopcode,_name,_fk) VALUES
('n11','苹果',1),
('n12','白菜',2),
('a13','冬瓜',3),
('n14','西瓜',4),
('n15','丝瓜',5),
('c16','苦瓜',6),
('m17','南瓜',5),
CREATE TABLE t_price(
_pid INT PRIMARY KEY,
_price FLOAT
);
INSERT INTO t_price(_pid,_price) VALUES
(1,9.0),
(2,3.2),
(3,5.5),
(4,6.0),
(5,6.3),
(6,6.6);
两张表通过 t_shop._fk 和 t_price._pid 进行关联
-- 要求
-- 1 查询所有瓜的所有信息,包括价格
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_shop._name LIKE '%瓜%'
-- 2 查询价格在4.0 到8.0 的所有商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price BETWEEN 4 AND 8
-- 3 查询查询同价格的商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price INLECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid GROUP BY t_price._price HAVING COUNT(*)>=2)
-- 4 查询最高价格商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price=(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid GROUP BY t_price._price ORDER BY t_price._price DESC LIMIT 1)
-- 5 查询查询商品价格最高的前三个商品的信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid GROUP BY t_price._price DESC LIMIT 3
-- 6 查询所有商品的平均价格
SELECT AVG(t_price._price) FROM t_price,t_shop WHERE t_shop._fk=t_price._pid
-- 7 查询所有瓜的平均价格
SELECT AVG(t_price._price) FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_shop._name LIKE '%瓜%'
-- 8 查询最高商品的价格是最低商品的价格的倍数是多少
SELECT(SELECT MAX(t_price._price) FROM t_price,t_shop WHERE t_shop._fk=t_price._pid)/(SELECT MIN(t_price._price) FROM t_price,t_shop WHERE t_shop.=t_price._pid)
-- 9 查询和丝瓜有相同价格的商品信息
SELECT * FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price=(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_shop._name="丝瓜") AND t_shop._name!="丝瓜"
-- 10 查询 是最低价格的商品的整数倍价格,的商品信息(例如最低价格商品是白菜,3.0。
-- 它的整数倍3.0 6.0 9.0 等等这些价格的商品信息)。
SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price%(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid AND t_price._price<=ALL(SELECT t_price._price FROM t_price,t_shop WHERE t_shop._fk=t_price._pid))=0