我正在创建一个脚本,旨在通过选择一个类别,子类别和另一个子类,或者通过选择所有内容来查询帖子列表。
问题在于,当我想要显示“所有”帖子时,我需要为每个帖子创建3个查询(将类别编号转换为名称)。
有没有办法让它更优化?
表格结构:
提前致谢。
答案 0 :(得分:2)
我会从阅读JOIN:http://mysqljoin.com/joins/inner-join-tutorial/
开始解决您的问题一旦理解了这个概念,你的问题就会自行解决。
不提供任何解决方案代码,因为问题看起来像是一项家庭作业。
答案 1 :(得分:1)
取而代之的是获取所有类别名称,ID并将它们存储到数组中。类似于[id] => category_name。
和其他查询来获取父子,使用连接。
答案 2 :(得分:1)
类似的东西:
SELECT posts.description, main_cat.name AS cat_name, sub_cat.name AS sub_name, sub_sub_cat.name AS sub_sub_name FROM posts LEFT JOIN main_cat ON main_cat.id=posts.main_cat LEFT JOIN sub_cat ON sub_cat.id=posts.sub_cat LEFT JOIN sub_sub_cat ON sub_sub_cat.id=posts.sub_sub_cat
会这样做,但这是未经测试的 - 如果它有用,请将其标记为已接受 - 拥有38%的录取率不会给你太多帮助!
如果您要使用数据库,JOIN和LEFT JOIN对于掌握数据非常有用!