Python MySQL Kết Hợp
- Trang Trước MySQL Giới Hạn
- Trang Tiếp Theo MongoDB Bắt Đầu
Kết hợp hai hoặc nhiều bảng
Bạn có thể sử dụng câu lệnh JOIN để kết hợp hai hoặc nhiều bảng trong đó dựa trên các cột liên quan.
Giả sử bạn có bảng "users" và "products":
users
{ id: 1, name: 'John', fav: 154}, { id: 2, name: 'Peter', fav: 154}, { id: 3, name: 'Amy', fav: 155}, { id: 4, name: 'Hannah', fav:}, { id: 5, name: 'Michael', fav:}
products
{ id: 154, name: 'Chocolate Heaven' }, { id: 155, name: 'Tasty Lemons' }, { id: 156, name: 'Vanilla Dreams' }
Bạn có thể sử dụng thuộc tính của users fav
thuộc tính và của products id
thuộc tính để kết hợp hai bảng này.
Ví dụ
Kết hợp người dùng và sản phẩm, xem sản phẩm yêu thích của người dùng:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="yourpassword", database="mydatabase" ) mycursor = mydb.cursor() sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ INNER JOIN products ON users.fav = products.id" mycursor.execute(sql) myresult = mycursor.fetchall() for x in myresult: print(x)
Ghi Chú:Bạn có thể sử dụng JOIN thay vì INNER JOIN. Bạn sẽ nhận được kết quả tương tự.
LEFT JOIN
Trong ví dụ trên, Hannah và Michael không được bao gồm trong kết quả vì INNER JOIN chỉ hiển thị các bản ghi khớp.
Nếu bạn muốn hiển thị tất cả người dùng, ngay cả khi họ không có sản phẩm yêu thích, hãy sử dụng câu lệnh LEFT JOIN:
Ví dụ
Chọn tất cả người dùng và sản phẩm yêu thích của họ:
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ LEFT JOIN products ON users.fav = products.id"
RIGHT JOIN
Nếu bạn muốn trả về tất cả các sản phẩm và người dùng yêu thích chúng, ngay cả khi không có người dùng yêu thích những sản phẩm đó, hãy sử dụng câu lệnh RIGHT JOIN:
Ví dụ
Chọn tất cả sản phẩm và người dùng yêu thích chúng:
sql = "SELECT \ users.name AS user, \ products.name AS favorite \ FROM users \ RIGHT JOIN products ON users.fav = products.id"
Ghi Chú:Hannah và Michael, không có sự quan tâm đến bất kỳ sản phẩm nào, không được bao gồm trong kết quả.
- Trang Trước MySQL Giới Hạn
- Trang Tiếp Theo MongoDB Bắt Đầu