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

Bagaimana cara memilih bidang gabungan dalam dengan IF/case?

Coba kueri ini (diedit ) -

SELECT c.*,
  CASE c.comment_type WHEN 8 THEN p1.photo_p_id WHEN 17 THEN p2.photo_id ELSE NULL END photo_id,
  CASE c.comment_type WHEN 8 THEN p1.column1 WHEN 17 THEN p2.column1 ELSE NULL END column1
FROM comments c
  LEFT JOIN photos p1
    ON c.object_id = p1.photo_p_id
  LEFT JOIN photos p2
    ON c.object_id = p2.photo_id

Satu varian lagi -

SELECT c.*, p.*
FROM comments c
  JOIN photos p
    ON c.comment_type = 8 AND c.object_id = p.photo_p_id OR c.comment_type = 17 AND c.object_id = p.photo_id



  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 Bagaimana menjumlahkan dari tabel lain dan menyisipkan di tabel lain

  2. Kalender Pemesanan Tanggal Tiba &Berangkat

  3. ROW_NUMBER() di MySQL

  4. Butuh bantuan untuk memahami objek koleksi produk Magento dan katalog/model produk

  5. Bagaimana menemukan semua string huruf besar dalam tabel MySQL?