CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Complétez la requête pour faire une jointure avec la table categories à l'aide de category_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"));
                }
            }
        }
    }
}
Modifier et exécuter le code