2017-10-19 23 views
0

J'ai été bloqué sur cette question toute la nuit et j'ai dû l'ignorer, et y revenir (désolé je suis un peu noob).MS-Access: sélection de données à partir de deux tables et retour seulement vous avez besoin

La question demande d'afficher les noms des cours et les noms des étudiants qui sont seulement dans ces cours. J'ai essayé ORDER BY, GROUP BY et INNER JOIN cependant Course_Name n'est pas présent sur les deux tables.

SELECT First_Name, Last_Name, Course_Name 
    FROM Student, Course 
    ORDER BY Course_Name; 

C'est le plus proche que je suis en mesure d'obtenir, il retourne tous les élèves, mais les listes dans tous les cours, pas seulement les cours qu'ils sont en particulier qui est ce que je suis après.

Une aide? :)

J'ai deux tables, Course et Student:

Le Course a ces colonnes:

Course_ID 
Course_Name 

et Student satisfaira

First_Name 
Last_Name 
Course_Name 
+0

Vous devez lire sur 'INNER JOINs, cela pourrait être utile: https://msdn.microsoft.com/fr-fr/library/bb243855(v=office.12).aspx – Moseleyi

Répondre

1

Vous avez la liste des cours en cours table et liste des étudiants dans la table des étudiants, mais vous devez avoir une table de plus probablement udents qui contient les données qui représentent quels étudiants suivent quels cours.

En règle générale (vous pouvez le considérer comme une pratique courante) La table CourseStudents se compose de 2 colonnes: clé étrangère pour la table des cours et clé étrangère pour la table des étudiants.

Ensuite, vous avez besoin d'une requête comme ceci:

SELECT First_Name, Last_Name, Course_Name 
FROM CourseStudents 
INNER JOIN Student ON CourseStudents.StudentID = Student.StudentID 
INNER JOIN Course ON CourseStudents.CourseID = Course.CourseID 
ORDER BY Course_Name 
+0

Vous êtes nous lcoma et oui, probablement, le nom de votre table CourseStudent et les noms de champs d'ID à l'intérieur étaient différents car j'ai inventé les noms ci-dessus. Si cela a résolu votre problème, s'il vous plaît ne pas oublier de le marquer comme une réponse ... – Noxthron

0

je pense que cette structure de données, si vous interrogez seule la table « étudiant », vous obtiendrez ce que vous voulez (SELECT * FROM ETUDIANT).

Cette structure de données permet à 1 étudiant d'être à 1 cours. vous voudrez probablement essayer de le modifier comme l'a dit Noxthron.

Tableau étudiant FirstName LastName StudentID

Tableau Cours courseName CourseID

Tableau CourseAssignment -> CourseStudents comme dit Noxthron StudentID courseid