Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL JOIN nhiều-nhiều

Có thể thực hiện được mẹo nhỏ này (THAM GIA NGOÀI TRỜI trên bảng nhiều-nhiều, với ràng buộc rằng ID nhóm phải là 3 (đối với Phim truyền hình)

http://sqlfiddle.com/#!9/01cf3/1

SELECT elements.ID, elements.Element, groups.Genre
  FROM elements
LEFT OUTER JOIN group_elements
  ON elements.ID = group_elements.ElementID
 AND group_elements.GroupID = 3
LEFT OUTER JOIN groups
  ON group_elements.GroupID = groups.ID

LEFT OUTER JOIN có nghĩa là:lấy tất cả các dòng từ các bảng trước đó (những dòng nằm ở phía bên trái của LEFT OUTER JOIN , nếu bạn muốn), ngay cả khi không có dòng nào tương ứng với chúng trong các bảng sau. Điều kiện ON elements.ID = group_elements.ElementID AND group_elements.GroupID = 3 nói rằng nếu chúng tôi tìm thấy bất kỳ thứ gì phù hợp với ElementID của mình, thì đó cũng phải là một bộ phim truyền hình (GroupID =3). Sau đó, chúng tôi thực hiện một THAM GIA TRÁI TRÁI trên bảng nhóm, cho phép chúng tôi hiển thị cột Thể loại hoặc NULL nếu phần tử không phải là phim truyền hình.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:Làm cách nào để giữ thứ tự các hàng với DISTINCT?

  2. Chọn id chèn cuối cùng

  3. Làm thế nào để lặp qua đối tượng Yii CActiveDataProvider?

  4. MySql Lỗi chung:2053

  5. Cách lưu trữ ngày trong cơ sở dữ liệu MySQL?