具有相同类型的多个父级的Mysql子级

时间:2016-08-26 04:27:45

标签: mysql join parent

我在mysql数据库(用于网站)中有食谱,我需要附加到其他食谱作为父子关系。我需要一个食谱才能有多个父母食谱。最初我以为我可以在食谱表中有一个parent_id列,但是如果一个食谱有多个父母不起作用。然后我想我只需要创建一个查找表,其中parent_id和child_id匹配,但父和子都是食谱,那么查询如何知道区分哪个是父项,哪个是我做select时的子项声明?这有道理吗?

1 个答案:

答案 0 :(得分:0)

我会使用两个表:recipes(ID, ...)connections(pID, cID)

每个食谱都有一个ID,在connections内你可以保存父子关系。

recipes将如下所示

(0, Soup)
(1, Cookie)
(2, Cookiesoup)

connections将如下所示

(0, 2)
(1, 2)

要查询Soup的所有子食谱ID = 0,您可以使用此

SELECT * FROM recipes JOIN connections ON recipes.ID = connections.cID WHERE connections.pID = 0

要查询Cookiesoup的所有父母食谱ID = 2,您可以使用此

SELECT * FROM recipes JOIN connections ON recipes.ID = connections.pID WHERE connections.cID = 2