【问题标题】:How to get data from database using join 5 tables如何使用连接 5 个表从数据库中获取数据
【发布时间】:2017-03-22 04:48:28
【问题描述】:

样本数据

job_category
**catergory_id**      **category_name**
      3                   Tourism and Travel Services

job
**job_id**      **role**                   **category_id**
   1        Financial Accountant               3

exam_paper
**exam_paper_id** **exam_paper_name** **job_id**
    1                  FA -TTS             1

question
**question_id  question  option1 option2 option3 option4** 
    15          AAA         a1     a2      a3       a4
    38          BBB         b1     b2      b3       b4
    39          CCC         c1     c2      c3       c4
    44          DDD         d1     d2      d3       d4
    45          EEE         e1     e2      e3       e4

exam_question_list
**id**  **exam_paper_id** **category_id** **job_id**   **q1  q2  q3  q4  q5**
  1          1                    3         1            15  38  39  44   45 

我想从exam_question_list 表中获取详细信息,预期结果是问题,根据question_paper_list 表'q1-q5'从问题表中的选项

我尝试获取数据,但无法正常工作;

SELECT *
FROM exam_question_list eq
LEFT JOIN exam_paper ex
    ON eq.exam_paper_id = ex.exam_paper_id
LEFT JOIN job j
    ON j.job_id = ex.job_id
LEFT JOIN job_catergory jc
    ON jc.catergory_id = j.catergory_id
LEFT JOIN question q
    ON q.question_id=eq.q1

这个查询只给出问题 1。我想得到所有 5 个问题。怎么做?

【问题讨论】:

  • 请正确提及表名。
  • 我的猜测是没有任何问题,只有一个记录在四个连接中幸存下来。使用适当的数据更新您的问题,有人可以仔细查看。
  • 5道题怎么答,我只有1道题
  • ** q1 q2 q3 q4 q5 ** 是不同的行吗?
  • “exam_question_list”的不同列

标签: php mysql join


【解决方案1】:

您的查询是错误的。正确的是

SELECT eq.*
FROM exam_question_list eq 
LEFT JOIN exam_paper ex ON eq.exam_paper_id = ex.exam_paper_id
LEFT JOIN job j ON j.job_id = ex.job_id
LEFT JOIN job_catergory jc ON jc.catergory_id = j.catergory_id
LEFT JOIN question q ON q.question_id=eq.q1

【讨论】:

    【解决方案2】:

    您需要有问题的外键,因为相关数据在那里 在所有加入之后,您开始选择问题,然后将 where = id_whherever_you_want

    exam_question_list 与任何东西都没有关联尝试制作一个关系数据模型,这可以帮助您了解您需要在数据库中进行哪些更改。 删除exam_question_list并将所有外键放在问题上

    【讨论】:

      猜你喜欢
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 2011-05-28
      • 2021-08-10
      • 2021-04-01
      相关资源
      最近更新 更多