php - 使用不同的 where 子句加入 2 个表
问题描述
我的数据库中有 2 个表
1. admin_store_exam 列有 exam_name、A_QNum、math_ques、math_a、math_b、math_c、math_d、A_Ans
2. student_ans_history 列有 exam_name、S_ID、S_QNum、S_Ans、S_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不是很熟悉,所以不明白我在哪里做错了。谁能帮我解决这个问题。谢谢..
解决方案
你可以像这样加入它:
$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";
希望这有效!
推荐阅读
- c# - 如何使用 EmguCV 捕获活动窗口
- mps - 有没有办法在 MPS 概念实例中存储一系列字节/二进制数据?
- php - Laravel - 迁移工作但发布请求抛出“用户'root'@'localhost'的访问被拒绝”
- mongodb - 如何通过一个字段匹配、分组和排序进行聚合
- python - 按百分比计算 Python Pandas 组
- php - 从缓存中排除短代码内容 - Wordpress
- android - 使用 AlternativeIdePath 在 Intellij 上创建插件时找不到 Android Studio
- python-3.x - FileNotFoundError: [WinError 2] pybloqs保存PDF时系统找不到指定的文件
- ruby-on-rails - 找不到 Rails 电子图书馆应用程序的没有 ID 的类别
- objective-c - 在 Objective C 中将 writeValue 数据作为 NSData 与 Swift 中的数据之间的区别