这是我的表
table category
id catname childof isParent
1 name1 0 yes
2 name2 1 no
等...
表食谱
id name cat
1 recipe1 1
2 recipe2 2
等
表之间的唯一链接是引用category.id的recipe.cat。我需要一个MySQL脚本来显示这个:
recipe.name parent category name
recipe1 name1
recipe2 name1
所以我需要它来查找使用父名称(如果它是父项或父项的子项)。我可以创建一个脚本来查找父ID:
SELECT catname, isparent, id, childof,
case isParent
when 'no' then childof
else id
end as newid
FROM category
这给了我父ID但不是名字。我需要将newid别名链接到配方表以获取名称,这是我被卡住的地方,因为我需要连接是childof或ID,具体取决于cat是父级还是子级。我希望这是有道理的。
答案 0 :(得分:1)
拯救的子查询:
SELECT a.name AS recipe_name,
CASE b.isParent
WHEN 'no'
THEN (SELECT catname FROM category WHERE id = b.childof)
ELSE b.catname
END AS category_name
FROM recipe AS a, category AS b
WHERE a.cat = b.id
返回:
recipe_name | category_name
------------+---------------
recipe1 | name1
recipe2 | name1
答案 1 :(得分:0)
第二个查询,您可以使用您获得的ID查询该类别的名称吗?