Menu
Coddy logo textTech

Basic Join Part 1

Fait partie de la section Les fondamentaux du Journey SQL de Coddy. Leçon 43 sur 72.

Jusqu'à présent, nous avons traité des problèmes liés à une seule table. Nous allons maintenant examiner comment gérer plusieurs tables.

Supposons que nous ayons les tables suivantes :

courses

course_idlecturer_id
11
21
32

lecturers

lecturer_idnom
1Jhonas
2Malidos

La tâche consiste à présenter chaque cours avec le nom du professeur correspondant.

Il existe deux façons d'y parvenir. Pour chaque option, nous faisons correspondre chaque ligne d'une table à l'autre. Nous vérifions une condition qui doit être remplie et si cette condition est remplie, nous combinons les deux lignes en une seule. Le résultat souhaité pour les deux options :

course_idlecturer_name
1Jhonas
2Jhonas
3Malidos

Option 1 :

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_id

Ici, nous écrivons deux tables dans le mot-clé FROM, et dans la clause WHERE nous demandons que le lecturer_id des deux enregistrements soit same. Dans la clause SELECT, nous écrivons maintenant table.column afin que la base de données sache où récupérer la column.

Option 2 :

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_id

Au lieu de WHERE, nous utilisons JOIN table ON condition

Ce type de jonction est également appelé une jointure interne (inner join).

challenge icon

Défi

Facile

Tables et colonnes disponibles :

  • <strong>grades</strong> : <strong>course_id</strong>, <strong>student_id</strong>, <strong>grade</strong>
  • <strong>students</strong> : <strong>id</strong>, <strong>name</strong>

Créez une requête qui récupère student_name, course_id, student_id et grade dans une seule table. Triez le résultat par grade par ordre croissant.

Essayez vous-même

-- Liste les colonnes demandées par la tâche, en utilisant l'alias demandé
SELECT ____
FROM students, grades
-- Ne conserve que les paires de lignes où les deux tables décrivent la même personne
WHERE ____
ORDER BY grade
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Les fondamentaux

Entraînez-vous par vous-même : Playground SQL