【问题标题】:Join 2 table with different where clause使用不同的 where 子句加入 2 个表
【发布时间】:2018-05-12 09:09:57
【问题描述】:

我的数据库中有 2 个表

1.admin_store_exam 列是 exam_nameA_QNummath_ques、math_a、math_b、math_c、math_d、A_Ans

2.student_ans_history 列是 考试名称S_IDS_QNumS_AnsS_Noans

现在我想用不同的 WHERE 子句在 exam_name 列上加入这两个表。

这里有两个不同的带有 WHERE 子句的查询。

$sql="SELECT * FROM admin_store_exam WHERE exam_name='$en'";

$sql="SELECT * FROM student_ans_history WHERE exam_name='$en' AND S_ID='$session_contact'";

加入这两个表后,我得到了这些。

$sql="
SELECT admin_store_exam.A_QNum
     , admin_store_exam.math_ques
     , admin_store_exam.math_a
     , admin_store_exam.math_b
     , admin_store_exam.math_c
     , admin_store_exam.math_d
     , admin_store_exam.A_Ans
     , student_ans_history.S_Ans
     , student_ans_history.S_Noans 
  FROM admin_store_exam 
 WHERE admin_store_exam.exam_name = '$en' 
  JOIN student_ans_history 
 WHERE student_ans_history.exam_name = '$en' 
   AND S_ID = '$session_contact' 
    ON admin_store_exam.exam_name = student_ans_history.exam_name
 ";

但不幸的是,我不会得到任何结果。 我对sql不是很熟悉,所以不明白我在哪里做错了。谁能帮我解决这个问题。谢谢..

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

你可以像这样加入它:

$sql="SELECT admin_store_exam.A_QNum
 , admin_store_exam.math_ques
 , admin_store_exam.math_a
 , admin_store_exam.math_b
 , admin_store_exam.math_c
 , admin_store_exam.math_d
 , admin_store_exam.A_Ans
 , CONCAT(S_Ans,S_Noans) AS S_Ans
  FROM admin_store_exam 
 INNER 
  JOIN student_ans_history 
    ON admin_store_exam.exam_name = student_ans_history.exam_name 
        AND admin_store_exam.A_QNum = student_ans_history.S_QNum
 WHERE admin_store_exam.exam_name = '$en' 
   AND student_ans_history.S_ID = '$session_contact'
    GROUP BY admin_store_exam.exam_name, admin_store_exam.A_QNum";

希望这行得通!!!

【讨论】:

    【解决方案2】:

    您可以使用子查询。考虑以下示例:

    SELECT A.* FROM
    (SELECT * FROM admin_store_exam WHERE exam_name='AB') AS A
    INNER JOIN
    (SELECT * FROM student_ans_history WHERE exam_name='AB' AND S_ID='23344') AS B
    ON A.exam_name = B.exam_name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-03
      • 2021-05-07
      • 1970-01-01
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多