btvn.vn
Tìm kiếm Đăng nhập

SQL liên kết dữ liệu giữa hai bảng

Lưu trên thiết bị này
Giới thiệu các hệ cơ sở dữ liệu · Chọn bài khác

Hai bảng nối bằng mã

Bảng **TacGia** có `T01` → An và `T02` → Bình. Bảng **BanNhac** có K01 — “Mưa đầu mùa” — `T01`; K02 — “Ngày nắng” — `T02`; K03 — “Gió qua hiên” — `T01`. Các tên là dữ liệu hư cấu. Muốn hiển thị tên bài cùng tên tác giả, phải ghép `BanNhac.MaTacGia` với `TacGia.MaTacGia`. Trường MaTacGia của BanNhac là khóa ngoài; trường cùng tên của TacGia là khóa chính.

Đọc phép INNER JOIN

```sql SELECT BanNhac.TenBai, TacGia.TenTacGia FROM BanNhac INNER JOIN TacGia ON BanNhac.MaTacGia = TacGia.MaTacGia ORDER BY BanNhac.MaBai; ``` `ON` quy định cặp mã phải bằng nhau. K01 và K03 cùng ghép với T01 để được tên An; K02 ghép với T02 để được tên Bình. `SELECT` chỉ hiển thị hai tên, còn `ORDER BY` đưa kết quả theo mã bài K01, K02, K03. **INNER JOIN** chỉ giữ những hàng ghép được theo điều kiện; nếu có mã tác giả không khớp, hàng ấy không có trong kết quả này. `LEFT JOIN` có quy tắc giữ hàng bên trái khác, nên không thay thế hai phép ghép cho nhau trong mọi tình huống.

Bài luyện

Trong câu truy vấn, điều kiện nào quyết định bản nhạc ghép với tác giả nào?
Chọn một đáp án

Bài luyện

Theo dữ liệu đã cho, K03 ghép với tác giả nào?
Chọn một đáp án

Bài luyện

Nếu có một hàng BanNhac mang mã tác giả T99 nhưng TacGia chưa có T99, INNER JOIN trên sẽ xử lí hàng ấy thế nào?
Chọn một đáp án

Đang học