好的,我有两张 table
一个是业务
id
name
telephone
primary_category
secondary_category
tertiary_category
另一个表是类别
id
name
parent_id
现在企业必须有主要/次要和可选的第三类别,在这种情况下这是唯一的方法
SELECT * FROM business b
INNER JOIN business_category bc_1 ON b.primary_category = bc.id
INNER JOIN business_category bc_2 ON b.secondary_category = bc.id
LEFT OUTER JOIN business_category bc_3 ON b.tertiary_category = bc.id
似乎很长,因为我想要的是业务表中每个类别的名称
最佳答案
据我所知,你现在的做法已经很高效了。您有很多选择,例如在其上创建子查询,但它的效率低于您创建的子查询。
如果您在所有表上都正确定义了索引,那么就可以开始了。更具体地讲这些列:
primary_category
secondary_category
tertiary_category
因为这些是来自 category 表的外键。
关于MYSQL 多次将一个表连接到另一个单个表的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12651551/