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

MYSQL Tự tham gia hoạt động như thế nào?

Cách tôi cố gắng hiểu điều này là viết ra hai danh sách trên mảnh một có nhãn event1 và một event2. Sau đó, liệt kê một vài bản ghi trong mỗi danh sách (các danh sách sẽ giống hệt nhau) bây giờ bắt đầu tại WHERE trong mô tả bên dưới.

Chúng tôi đang lấy dữ liệu từ hai bảng (OK, cùng một bảng được sử dụng hai lần, nhưng hãy cố gắng bỏ qua điều đó trong thời điểm này)

FROM mm_eventlist_dates event1
JOIN mm_eventlist_dates event2 

Nó có thể hữu ích khi đọc phần còn lại từ dưới lên.

  WHERE event1.id=$id

Vì vậy, chúng tôi muốn bản ghi từ event1 có id bản ghi được chỉ định. Có lẽ đó chính xác là một kỷ lục. Bây giờ chúng ta tìm ra ngày sau khi sự kiện đó kết thúc.

 date_add(event1.enddate, INTERVAL 1 DAY)

Bây giờ cho chúng ta biết các bản ghi từ event2, chúng cần bắt đầu vào ngày đó,

ON event2.startdate = date_add(event1.enddate, INTERVAL 1 DAY)

Bây giờ chúng tôi đã xác định được hai bản ghi, chúng tôi muốn những trường nào?

SELECT event2.id, event2.startdate, event2.price

Ồ, chỉ là các trường từ trường mà chúng tôi đã tìm ra ngày bắt đầu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao mysqli đưa ra lỗi Lệnh không đồng bộ?

  2. MySql tổng các phần tử của một cột

  3. Khôi phục cơ sở dữ liệu MySQL từ các tệp vật lý

  4. Cách hoạt động của hàm LOWER () trong MySQL

  5. MySQL tương đương STUFF () trong SQL Server là gì?