La première jointure
CityBook Libraries veut afficher les catégories de livres avec les résultats de recherche. Seuls les livres ayant une catégorie attribuée doivent apparaître dans les résultats.
Joignez la table categories pour enrichir les données sur les livres. La classe HikariSetup est déjà configurée pour vous.
Cette activité fait partie du cours
Interroger une base de données PostgreSQL en Java
Instructions de l’exercice
- Complétez la requête pour faire une jointure avec la table
categoriesà l'aide decategory_id. - Choisissez le type de jointure approprié afin d'afficher uniquement les livres qui ont une catégorie.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
public class Main {
public static void main(String[] args) throws SQLException {
HikariDataSource ds = HikariSetup.createDataSource();
// Join with the categories table using category_id
String query = """
SELECT b.*, c.name, c.description
FROM books b
____ JOIN ____ c on b.____ = c.____
WHERE b.publication_year >= ?
AND b.status = 'available'
ORDER BY publication_year ASC
""";
try (Connection conn = ds.getConnection();
PreparedStatement pstmt = conn.prepareStatement(query)) {
pstmt.setInt(1, 2000);
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
System.out.printf("ID: %d, Title: %s (%d), Category: %s - %s%n",
rs.getInt("book_id"), rs.getString("title"), rs.getInt("publication_year"),
rs.getString("name"), rs.getString("description"));
}
}
}
}
}