为了账号安全,请及时绑定邮箱和手机立即绑定

子表连接父表,自身连接。ON s.parent_id = p.type.name


SELECT s.type_id,s.type_name,p.type_name FROM tdb_goods_types AS s LEFT JOIN tdb_goods_types AS p ON s.parent_id = p.type_id;

http://img1.sycdn.imooc.com//58f8c3270001778706040491.jpg

s.parend_id这个字段哪里来的?为什么它连接p.type_id

表中的type.name就会显示汉字?type_id应该是数字啊。

ON s.parent_id = p.type_id;

正在回答

3 回答

s.parent_id是tdb_goods_types表中三个列type_id , type_name , parent_id 中的parent_id.

显示汉字是因为select语句查找显示的是type_name.

你说的ON s.parent_id = p.type_id 是连接条件 而不是显示结果

1 回复 有任何疑惑可以回复我~
#1

萌新e 提问者

实在理解不了s.parent_id = p.type_id这个式子的意思,求解释一下。感谢
2017-04-22 回复 有任何疑惑可以回复我~
#2

逆风落叶 回复 萌新e 提问者

在那节课中tdb_doogs_types进行自身连接的目的是对每个分类显示上级分类,而在tdb_goods_types这个表中,存在parent_id(也就是上级分类的id编号)这个属性,那么就可以通过s.parent_id=p.id(子表的上级分类的id编号等于父表的id编号)这个连接条件进行连接,其实就是通过本身存在的上级分类编号找到了name属性
2017-04-23 回复 有任何疑惑可以回复我~

tdb_goods_types的记录

1 回复 有任何疑惑可以回复我~

s.parend_id这个字段来源于tdb_goods_types本身,至于为什么会显示汉字,是因为链接完成之后子表与父表已经存在实际的外键关系,与物理外键相同。你可以复习一下3-3的外键知识

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

子表连接父表,自身连接。ON s.parent_id = p.type.name

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信