我正在构建测验类型的软件,在构建从不同表中选择列的复杂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获取类别名称,但我不确定如何正确加入这些表格。
如果有人能解释我需要改变什么,我将非常感激。
答案 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