MYSQL 多次将一个表连接到另一个单个表的最佳方式

标签 mysql

好的,我有两张 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/

相关文章:

java - 使用 PreferenceFragment 时从 Volley 获取空指针错误

mysql - 获取不在给定范围内的多行日期范围

php - 从 Laravel 范围查询中排除连接列 ONLY_FULL_GROUP_BY 错误

mysql - 错误 1064 (42000) SQL 插入

mysql - SELECT 后的保留关键字

PHP - 无法上传超过 1MB 且编辑 php.ini 后的文件

php - 如果您只有 5 个成员使用它,在哪里保存用户名和密码?

mysql - 如何让emysql返回utf-8编码的二进制文件

php - mysql 查询 IN 语句变得不可预测

mysql - 为什么 AES_DECRYPT 返回空值?