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

phép nối có điều kiện mysql phụ thuộc vào một cột

bạn không thể tạo liên kết giữa các bảng một cách có điều kiện. Cách tốt nhất để làm là sử dụng LEFT JOIN và sử dụng bạn CASE trong SELECT của bạn tuyên bố. Bạn phải chỉ định các cột chung mà bạn muốn hiển thị,

SELECT *,
        (CASE notification_base.type
            WHEN 'photo'
            THEN photo.columnName1
            ELSE post.ColumnName1
        END) as ColumnName1,
        (CASE notification_base.type
            WHEN 'photo'
            THEN photo.columnName2
            ELSE post.ColumnName2
        END) as ColumnName2
FROM notification_action
    INNER JOIN notification_base
        ON notification_action.not_base_id = notification_base.id
    INNER JOIN notification_sub
        ON notification_action.not_base_id = notification_sub.not_base_id
    INNER JOIN photo
        ON photo.id = notification_base.object_id
    INNER JOIN post
        ON post.id = notification_base.object_id
WHERE notification_sub.user_id = 3
    AND notification_sub.lastShowDate < notification_action.creationDate;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi nghiêm trọng:Không thể khai báo lại session_start () trong dòng 25 functions.php

  2. Chuyển từ bản sao truyền thống sang GTID

  3. Công cụ lưu trữ Mysql cho bảng nhật ký

  4. Sử dụng truy vấn MySQL để duyệt qua các hàng để tạo một cây đệ quy

  5. Tham số Laravel hasM nhiều và thuộc về