2017-05-28 52 views
0

我得到的错误ERROR 1066(42000):不是唯一的表/别名: 'STUDENT_TBL'不是唯一的表/别名(42000)

select STUDENT,DATE,MARK from Assessments inner join STUDENT_TBL onAssessments,ID_STUDENT=STUDENT_TBL,STD_ID inner joinVisit_log,ID_STUDENT=STUDENT_TBL,STD_ID where STUDENT_TBL,STD_IDIN (select ID_STUDENT FROM Assessments group by ID_STUDENT having avg(MARK)>3.7);

如何解决呢?

回答

0

您应该使用的'.'代替','访问Table_Name.column_name

select STUDENT,DATE,MARK 
from Assessments AS Assessments 
inner join STUDENT_TBL AS STUDENT_TBL on Assessments.ID_STUDENT=STUDENT_TBL.STD_ID 
inner join Visit_log AS Visit_log on Visit_log.ID_STUDENT=STUDENT_TBL.STD_ID 
where STUDENT_TBL.STD_ID IN (select ID_STUDENT FROM Assessments 
          group by ID_STUDENT having avg(MARK)>3.7 

还可以使用别名等Assessments.ID_STUDENT而在选择子句选择列,如果这些存在于一个以上的表

+0

现在我有类似的错误:ERROR 1052(23000):字段列表中的'DATE'列不明确 –

+0

@ArtemMatrosov从哪个表引用'DATE'? – Rohan

+0

从“评估”表 –

0

如果您使用的模式和表名,你必须用单独的点像这样

select STUDENT, Assessments .`DATE`,MARK from Assessments 
inner join STUDENT_TBL on Assessments.ID_STUDENT=STUDENT_TBL.STD_ID 
inner join Visit_log.ID_STUDENT=STUDENT_TBL.STD_ID 
where STUDENT_TBL.STD_ID IN (select ID_STUDENT FROM Assessments group by ID_STUDENT having avg(MARK)>3.7); 
+0

现在我有一个错误,如:在字段列表列“DATE”:ERROR 1052(23000)是不明确的 –

+0

我在我的回答中加入了 –

相关问题