这是我的 table
table category
id catname childof isParent
1 name1 0 yes
2 name2 1 no
等等...
餐 table 食谱
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 别名链接到配方表才能获取名称,这就是我陷入困境的地方,因为我需要连接是子级或 ID,具体取决于猫是父级还是子级。我希望这是有道理的。
最佳答案
子查询来救援:
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
关于php - 当链接可以是父链接或子链接时查询生成父名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24271773/