5-4多表联查

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;

老师帮我看一下四表联查的思路正确吗?

正在回答 回答被采纳积分+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;

不存在关联字段则不能关联查询,如果解决您的问题请采纳,祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4928    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师