2

好的,我有两张桌子

一是商业

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

我想要的似乎很长只是业务表中每个类别的名称

4

1 回答 1

0

据我所知,你现在的做法已经很有效了。您有许多选择,例如在其上创建子查询,但它的效率低于您创建的那个。

如果您在所有表上都正确定义了索引,那么就可以了。更具体地说,在这些列上:

primary_category
secondary_category
tertiary_category

因为这些是类别表中的外键。

于 2012-09-29T09:53:42.917 回答