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
Instructions
- Complétez la requête pour joindre la table
categoriesaveccategory_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"));
}
}
}
}
}