Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用join 5表从数据库获取数据_Php_Mysql_Join - Fatal编程技术网

Php 如何使用join 5表从数据库获取数据

Php 如何使用join 5表从数据库获取数据,php,mysql,join,Php,Mysql,Join,样本数据 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_

样本数据

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 
我想从考试问题列表表中获取详细信息,预期结果是问题,根据问题列表表“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个问题。如何操作?

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

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

你的问题是错误的。正确的是

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

您需要有问题的外键,因为相关数据在那里 然后你开始用问题来选择,然后加入你把where=id\u放在你想要的地方

考试问题列表与任何内容都没有关联。试着创建一个关系数据模型,这有助于您了解数据库中需要更改的内容。
删除考试问题列表并将所有外键放在问题上

您需要有问题的外键,因为相关数据在那里 然后你开始用问题来选择,然后加入你把where=id\u放在你想要的地方

考试问题列表与任何内容都没有关联。试着创建一个关系数据模型,这有助于您了解数据库中需要更改的内容。
删除考试问题列表并将所有外键放在问题上

请正确地提及表名。我的猜测是根本没有错,只有一条记录在四次联接后仍然存在。用适当的数据更新你的问题,有人可以仔细查看。如何获得所有5个问题,我只得到1个问题**q1 q2 q3 q4 q5**是不同的行,对吗?不同列的“考试问题列表”请正确地提及表名。我的猜测是,没有什么错,只有一条记录在四个连接中幸存。用适当的数据更新你的问题,有人可以仔细查看。如何获得所有5个问题,我只得到1个问题**q1 q2 q3 q4 q5**是不同的行,对吗?“考试问题列表”的不同列