从数据库获取数据的最有效方法

时间:2013-07-19 14:16:26

标签: php mysql

所以我拥有的很简单。 我有1张桌子

CategorieMain

CatMainid

CatMainName

和1表:

CategorieSub

CATID

CatName

CatMainId

我想要的是:

包含所有CatMainName的列表,以及所有CatSubNames的名称。

CatMainId1

使用CatMainId1的所有CatSubNames

CatMainId2

使用CatMainId2的所有CatSubNames

Etc Etc

目前我用php来获取像

这样的数据
 SELECT * from Categoriemain

在while循环中我做

 SELECT * FROM CategorieSub WHERE CatMain id = $row['CatMainId']

但这是非常低效的,因为现在如果我有10个CatMainId,我会做10个查询(每一个一段时间)

获取像这样的列表的最有效方法是什么,我正在考虑将它放在数组或其他东西中,但我无法使其正常工作?

2 个答案:

答案 0 :(得分:0)

使用一个查询:

SELECT Categoriemain.*, CategorieSub.CatSubNames FROM Categoriemain
JOIN CategorieSub ON Categoriemain.CatMainid=CategorieSub.Catmainid

已编辑,已移除GROUP BY

使用此查询,您不需要while循环。

我还将CatSubNames添加到查询字段的输出列表中。

答案 1 :(得分:0)

SELECT * FROM Categoriemain
JOIN CategorieSub ON Categoriemain.CatMainid=CategorieSub.Catmainid
ORDER BY Categoriemain.CatMainid