Lần JOIN đầu tiên
CityBook Libraries muốn hiển thị thể loại sách cùng với kết quả tìm kiếm. Chỉ những cuốn sách đã được gán thể loại mới xuất hiện trong kết quả.
Hãy JOIN bảng categories để làm phong phú dữ liệu sách. Lớp HikariSetup đã được cấu hình sẵn cho bạn.
Bài tập này là một phần của khóa học
Truy vấn cơ sở dữ liệu PostgreSQL trong Java
Hướng dẫn bài tập
- Hoàn thiện truy vấn để JOIN với bảng
categoriesbằngcategory_id. - Chọn kiểu JOIN phù hợp để chỉ hiển thị các sách có thể loại.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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"));
}
}
}
}
}