Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

mysql bergabung bersyarat tergantung pada kolom

Anda tidak dapat membuat gabungan di seluruh tabel secara kondisional. Cara terbaik untuk melakukannya adalah dengan menggunakan LEFT JOIN dan menggunakan Anda CASE di SELECT penyataan. Anda harus menentukan kolom umum yang ingin Anda tampilkan,

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. str_replace di SQL UPDATE?

  2. Minggu dalam setahun selama berminggu-minggu dimulai dengan hari Sabtu

  3. Sinkronisasi database MySQL antara dua database

  4. Cara menyimpan id pendaftaran GCM secara unik ke MySQL

  5. Cara terbaik untuk menghapus nilai dari bidang SET?