Php 此查询类型的SQL联接

Php 此查询类型的SQL联接,php,mysql,Php,Mysql,我有一个表来存储FAQ类别,然后是一个表来存储FAQ,所以现在当我必须显示FAQ时,我首先循环浏览类别,然后获取该类别下的所有FAQ 我希望输出像 Category 1 FAQ1, FAQ2... Category 2 FAQ3, FAQ4 有没有更好的办法?重新分级性能,比如在获取类别时使用JOIN,以同时获取每个类别下的常见问题,因此我只需运行一个查询 我的代码: <?php if($cache->hasItem('faq_categories')) { $cate

我有一个表来存储FAQ类别,然后是一个表来存储FAQ,所以现在当我必须显示FAQ时,我首先循环浏览类别,然后获取该类别下的所有FAQ

我希望输出像

Category 1
FAQ1, FAQ2...

Category 2
FAQ3, FAQ4
有没有更好的办法?重新分级性能,比如在获取类别时使用JOIN,以同时获取每个类别下的常见问题,因此我只需运行一个查询

我的代码:

<?php

if($cache->hasItem('faq_categories'))
{
    $categories = $cache->getItem('faq_categories');
}
else
{
    $categories = getRows(array(
        'table' => 'faq_categories', 
        'where' => array('is_active' => 1)
    ));

    $cache->setItem('faq_categories', $categories);
}

?>



<div class="row">
    <div class="col-md-12">
        <div class="globalBox">
            <div class="globalBoxInside">
                <h2 class="mainTitle">FAQs</h2>
                <div class="row">
                    <div class="col-md-10 col-md-offset-1">
                        <?php $c = 1; foreach($categories as $cat) : ?>

                        <?php 

                        $faqs = getRows(array(
                            'table' => 'faqs', 
                            'where' => array('faq_category_id' => $cat['id'])
                        ));

                        ?>
                        <div class="faq_category">
                            <h4 class="faq_cat_title"><?php echo $cat['title']; ?> (<?php echo $cat['questions_count']; ?>)</h4>
                            <ul class="faqs_questions_list row">
                                <?php foreach($faqs as $faq) : ?>
                                <li class="col-md-6"><i class="fa fa-dot-circle-o"></i> <a href="<?php echo getURI('faqs'); ?>/<?php echo encryptParam('CA' . $cat['id'] . '-' .$faq['id']); ?>"><?php echo $faq['question']; ?></a></li>
                                <?php endforeach; ?>
                            </ul>
                        </div>
                        <?php endforeach; ?>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

常见问题
()

感谢您的回答。

您可以选择所有类别并循环选择每个类别的常见问题解答

伪Python代码:

categories = execute('select id, name from categoryTable order by name')
for category in categories:
    print category.name
    faqs = execute('select question, answer from faqTable where categoryId=' + category.id)
    for faq in faqs:
        print faq.question + ' - ' + faq.answer

您为完成此操作而编写的查询在哪里?您应该发布您的查询。@如果没有错误,我只是在寻找更好的方法,请参阅更新的问题。这是我正在做的,我正在寻找更好的解决方案,在一个查询中可以获得与每个类别相关的所有常见问题,我的问题是,这是可能的吗?您可以使用连接一次加载所有数据,如选择c.name,f.question,f.answer from FAQ表f left join categoryTable c on f.categoryId=c.id按c.name,f.answer的顺序,f.answer,然后循环此光标,但这样我无法获得所需的输出,请查看有关输出的问题,如果我错了,请告诉我,很好,如果你能把代码放在这里。谢谢