2017-05-28 3 views
0

je reçois l'erreur ERROR 1066 (42000): Non tableau unique de/alias: 'STUDENT_TBL'Table pas unique/alias (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);

Comment réparer?

Répondre

0

Vous devez utiliser '.' au lieu de ',' pour accéder 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 

Utilisez également alias comme Assessments.ID_STUDENT lors de la sélection des colonnes à la clause select si ceux-ci sont présents dans plus d'une table

+0

Maintenant, j'ai une erreur comme: ERREUR 1052 (23000): colonne 'DATE' dans la liste des champs est ambigu –

+0

@ArtemMatrosov De quelle table vous faites référence 'DATE'? – Rohan

+0

De la table "Assessments" –

0

Si vous utilisez schéma et TABLENAME vous devez séparer avec point comme celui-ci

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

Maintenant, j'ai une erreur comme: erreur 1052 (23000): Colonne « DATE » dans la liste des champs est ambigu –

+0

J'ai ajouter dans ma réponse –