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

来源:5-13 无限级分类表设计

萌新e

2017-04-20 22:21


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://img.mukewang.com/58f8c3270001778706040491.jpg

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

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

ON s.parent_id = p.type_id;

写回答 关注

3回答

  • 逆风落叶
    2017-04-21 14:45:49

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

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

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

    逆风落叶 回复萌新e

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

    2017-04-23 08:08:04

    共 2 条回复 >

  • 庭前闲月
    2017-04-20 23:43:01

    tdb_goods_types的记录

  • 庭前闲月
    2017-04-20 23:38:36

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

与MySQL的零距离接触

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

396764 学习 · 3390 问题

查看课程