CommencerCommencer gratuitement

Votre premier JOIN

CityBook Libraries souhaite afficher les catégories des livres dans les résultats de recherche. Seuls les livres ayant une catégorie attribuée doivent apparaître dans les résultats.

Faites un JOIN avec la table categories pour enrichir les données des livres. La classe HikariSetup est déjà configurée pour vous.

Cet exercice fait partie du cours

Interroger une base de données PostgreSQL en Java

Afficher le cours

Instructions

  • Complétez la requête pour joindre la table categories avec category_id.
  • Choisissez le type de JOIN approprié pour n’afficher que les livres ayant une catégorie.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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