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

Nhiều MySQL tham gia vào cùng một bảng

Dựa trên nhận xét của bạn rằng trang1, trang2 .. là các cột khóa ngoại, tôi nghĩ nó đơn giản.

Một cái gì đó như:

SELECT 
    s.unique_id, s.counter, s.sequence_length, s.yearmonth, 
    s.mod_date_stamp,
    pg1.page_url as page1, pg2.page_url as page2, 
    pg3.page_url as page3, pg4.page_url as page4, 
    pg5.page_url as page5
FROM 
    session s
LEFT JOIN 
    sessionpage pg1 ON pg1.unique_id = s.page1 
LEFT JOIN 
    sessionpage pg2 ON pg2.unique_id = s.page2
LEFT JOIN 
    sessionpage pg3 ON pg3.unique_id = s.page3
LEFT JOIN 
    sessionpage pg4 ON pg4.unique_id = s.page4
LEFT JOIN 
    sessionpage pg5 ON pg5.unique_id = s.page5

Tôi nghĩ cái này sẽ có hiệu quả.

Nhưng khi không có giá trị trên cột (trên phiên bảng), bạn nên sử dụng null thay vì 0 (không).

Một mẹo khác, trên câu lệnh SELECT, nếu bạn không muốn giá trị NULL, bạn có thể sử dụng:

COALESCE(pg5.page_url, ' ') as page5



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cú pháp CẬP NHẬT MySQL với nhiều bảng sử dụng mệnh đề WHERE

  2. Làm thế nào để chọn số lượng bản ghi N khôn ngoan trong phân trang từ Cơ sở dữ liệu MySQL?

  3. Cách lưu trữ địa chỉ tương thích với IPv6 trong cơ sở dữ liệu quan hệ

  4. Có phải việc thực hiện Quản lý giao dịch trong Bộ điều khiển là hoạt động không tốt?

  5. json_encode biến mảng thành một đối tượng