使用where子句从另一个表中选择数据

时间:2014-02-02 11:32:03

标签: mysql sql

这个查询出了什么问题,我在这里从3个不同的表中选择数据。来自“class_exams”表的第一个考试题目,第二个从“结果”表中选择总分的总和。查询在没有where子句的情况下工作正常。

SELECT id, exam_date , (
SELECT title
FROM class_exams
WHERE result_heads.exam_id = class_exams.id
) AS exam_title, (
SELECT sum( marks )
FROM results
WHERE result_heads.id = results.head_id
) AS obt_marks

FROM `result_heads` WHERE exam_title = 'test';

错误来了

Unknown column 'exam_title' in 'where clause'

3 个答案:

答案 0 :(得分:1)

考虑使用Join

如果我理解表模式,它应该是这样的:

SELECT result_heads.id, result_heads.exam_date , sum( results.marks )AS obt_marks
FROM results JOIN result_heads
     ON results.exam_id = result_heads.id
GROUP BY result_heads.id, result_heads.exam_date

答案 1 :(得分:0)

我认为您需要在where子句

中添加表的名称
WHERE `tbl_name`.`exam_title = 'test';

答案 2 :(得分:-1)

我知道这是一个旧帖子,但我想填写旧帖子结束的答案,以防止死胡同发布。看起来在From子句中没有调出表名

请参阅此链接http://www.techonthenet.com/mysql/where.php并查看示例 - 加入表格。