MySQL在多个表中选择列

时间:2016-01-30 14:01:19

标签: php mysql

我正在构建测验类型的软件,在构建从不同表中选择列的复杂SQL查询时,我几乎丢失了。

我需要四个表来获取信息。

表格结构:http://i.imgur.com/px759LY.png

我有这个SQL查询:

$questions = $this->db->get_results("
    SELECT * FROM
    (
        SELECT * from wp_ket_questions ".$where." ORDER BY RAND() LIMIT ".$limit."
    ) t1
    JOIN wp_ket_answers t2 ON t1.id = t2.question_id
", ARRAY_A);

此查询从 wp_ket_questions 表中选择列,并从 wp_ket_answers 表中选择答案。我还使用JOIN来获得属于某个问题的答案。

问题是:如何在此SQL查询中加入 wp_ket_categories wp_categories_questions 表,以便获取与某个问题相关的类别名称?

wp_ket_categories 表存储了我可以附加到问题的所有可能类别以及 wp_categories_questions 表存储cat_id和question_id列,不知何故我需要从 wp_ket_categories获取类别名称,但我不确定如何正确加入这些表格。

如果有人能解释我需要改变什么,我将非常感激。

1 个答案:

答案 0 :(得分:1)

cqusing你的逻辑,试试这个。您需要链接每个表

SELECT * 
from wp_ket_questions q, wp_ket_answers a ,wp_ket_categories c ,wp_categories_questions cq
where 
q.id = a.question_id 
AND c.id = cq.cat_id 
AND a.question_id = cq.question_id