Hiện tên tỉnh cạnh tên phường/xã giả
Trong CSDL thực hành **giả định**, `xa(idXa,tenXa,idTinh)` tham chiếu `tinh(idTinh,tenTinh)`. Muốn hiện cả hai tên, dùng cùng mẫu JOIN vừa học:
```sql
SELECT t.tenTinh, x.tenXa
FROM tinh AS t
INNER JOIN xa AS x ON t.idTinh = x.idTinh
ORDER BY t.idTinh, x.idXa;
```
Máy thử có “Phường Mẫu” ở hai hàng: một thuộc Tỉnh Mẫu A, một thuộc Thành phố Mẫu B. Kết quả là **hai dòng**, vì hai mã tỉnh khác nhau; không ghép theo `tenXa` hay gộp chỉ vì tên trùng. Nếu chưa tạo bảng `tinh`/`xa`, câu SQL sẽ báo thiếu bảng; hãy dùng sơ đồ để xác định điều kiện nối hoặc tạo **CSDL thử riêng** trước. Đây không phải danh sách địa giới Việt Nam hiện hành.
Bài hỏi thể loại cần dữ liệu thể loại
Một yêu cầu vận dụng ở trang 112 hỏi bản thu thuộc “Nhạc trữ tình”. Nhưng mô hình bốn bảng đã tạo ở Bài 18–20 **chưa có cột hay bảng thể loại**. Dòng mở đầu Bài 23 bất ngờ liệt kê `bannhac.idTheloai`, trong khi các bài trước khai báo `bannhac` chỉ có ba cột. Lời giải gợi ý ở SGV trang 187–188 lọc theo ca sĩ mà **không có điều kiện thể loại**, nên chưa trả lời trọn yêu cầu.
Muốn lọc thể loại đúng, phải **thiết kế và nhập** thêm dữ liệu thể loại, ví dụ bảng `theloai(idTheloai,tenTheloai)` và khóa ngoại `bannhac.idTheloai`, sau đó JOIN/WHERE theo đúng tên hoặc mã thể loại. Đó là bước mở rộng cấu trúc, **không tự chạy** câu hỏi ấy trên bốn bảng hiện có. Cũng vậy, yêu cầu cột `tenTacgia` có thể hiển thị bằng bí danh từ `nhacsi.tenNhacsi`, không phải cột mới tự có. Bài luyện chính ở đây chỉ dùng các bảng và dữ liệu đã kiểm.
Bài luyện
Muốn hiện tenTinh và tenXa trong mô hình giả, điều kiện JOIN nào đúng?
Hai tên khác ý nghĩa, không là mã liên kết.
Khóa ngoại ở xa trỏ tới khóa chính tinh.
idXa định danh hàng phường/xã.
Tên tỉnh không phải mã hàng phường/xã.
Lời giải
Nối xa.idTinh với tinh.idTinh để đặt đúng tên tỉnh/thành phố cạnh mỗi phường/xã.
Bài luyện
Bốn bảng nhạc hiện chưa có dữ liệu thể loại. Có thể lọc chính xác “Nhạc trữ tình” ngay không?
JOIN không tạo dữ liệu chưa lưu.
Yêu cầu lọc cần một thuộc tính/danh mục thể loại đã có.
Tên ca sĩ không đồng nhất với thể loại.
Đổi tên mã bài không cung cấp thể loại.
Lời giải
Mô hình hiện tại không lưu thể loại, nên chưa thể bảo đảm truy vấn nào lọc đúng nhạc trữ tình.
Bài luyện
Hai hàng “Phường Mẫu” có idTinh lần lượt 1 và 2. JOIN với tinh cho kết quả nào?
Mỗi hàng xa tham chiếu một hàng tinh.
JOIN theo mã, không gộp tên trùng.
Tên trùng ở hai tỉnh vẫn hợp lệ theo quy ước cặp.
Mã 2 trỏ tới tỉnh/thành phố mã 2.
Lời giải
Mỗi idTinh tìm đúng hàng tỉnh/thành phố của mình; hai phường/xã cùng tên ở hai tỉnh vẫn là hai dòng.
Đang học