5-4多表联查
CREATE TABLE provinces (
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
proName VARCHAR(10) NOT NULL UNIQUE
);
INSERT provinces(proName) VALUES('北京'),
('上海'),
('深圳');CREATE TABLE admin(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
email VARCHAR(50) NOT NULL DEFAULT '97025268@qq.com',
proId TINYINT UNSIGNED NOT NULL
);
INSERT admin(username,proId) VALUES('king',1);
INSERT admin(username,proId) VALUES('queen',2);CREATE TABLE cate (
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '编号',
cateName VARCHAR(50) NOT NULL UNIQUE COMMENT '商品分类名称',
cateDesc VARCHAR(100) NOT NULL DEFAULT '' COMMENT '商品分类的描述'
);
INSERT cate(cateName) VALUES('母婴');
INSERT cate(cateName) VALUES('服装');
INSERT cate(cateName) VALUES('电子');CREATE TABLE products(
id INT UNSIGNED NOT NULL AUTO_INCREMENT KEY COMMENT '编号',
productName VARCHAR(50) NOT NULL UNIQUE COMMENT '商品名称',
price FLOAT(8,2) NOT NULL DEFAULT 0 COMMENT '价格',
cateId TINYINT UNSIGNED NOT NULL COMMENT '商品所在分类的编号',
adminId TINYINT UNSIGNED NOT NULL COMMENT '管理员编号'
);
INSERT products(productName,price,cateId,adminId) VALUES('iphone9',9888,3,1);
INSERT products(productName,price,cateId,adminId)VALUES('adidas',388,2,2);
INSERT products(productName,price,cateId,adminId)VALUES('nike',888,2,2);
INSERT products(productName,price,cateId,adminId)VALUES('奶瓶',288,1,1);查询语句: SELECT p.id,p.productName,p.price,c.cateName,a.username,a.email,pr.proName FROM products AS p JOIN cate AS c ON p.id=c.id JOIN admin AS a ON p.id=a.proId JOIN provinces AS pr ON p.id=pr.id;
老师帮我看一下四表联查的思路正确吗?
2
收起
正在回答 回答被采纳积分+1
1回答
guly
2019-04-06 13:32:23
你好,表之间的关联首先要存在关联字段,如products 中cateid值和cate表中的id值相等,相关连,id的值和admin表中的proid值相等想关联,而你贴出的表中products没有和provice表关连得字段,所以关连三个表的话应该为:
SELECT p.id,p.productName,p.price,c.cateName,a.username,a.email,pr.proName FROM products AS p JOIN cate AS c ON p.cateId=c.id JOIN admin AS a ON p.id=a.proId;
不存在关联字段则不能关联查询,如果解决您的问题请采纳,祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
PHP小白零基础入门
- 参与学习 人
- 提交作业 626 份
- 解答问题 4928 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星