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

Paksa MySQL untuk mengembalikan duplikat dari klausa WHERE IN tanpa menggunakan JOIN/UNION?

Saya tidak yakin mengapa Anda ingin melarang JOIN karena ini cukup penting untuk SQL. Ini seperti melarang panggilan fungsi dalam bahasa fungsional.

Cara yang baik untuk menyelesaikan ini adalah dengan membuat kumpulan hasil yang berisi id yang ingin Anda kembalikan dan bergabung dengannya. Berikut salah satu cara untuk melakukannya:

SELECT Table1.*
FROM Table1
JOIN (SELECT 1 AS id
      UNION ALL SELECT 2
      UNION ALL SELECT 3
      UNION ALL SELECT 4
      UNION ALL SELECT 5
      UNION ALL SELECT 1
      UNION ALL SELECT 2
      UNION ALL SELECT 5
      UNION ALL SELECT 5) AS T1
ON Table1.id = T1.id

Saya tidak yakin apakah Anda telah mempertimbangkan metode ini? Tidak ada masalah yang tampaknya Anda takuti.

Jika Anda melarang bergabung, Anda tidak dapat melakukan ini kecuali Anda menggunakan prosedur tersimpan, yang menurut saya lebih buruk daripada bergabung.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hitung baris tabel

  2. Unduhan Excel macet 188kb

  3. Apakah MySQL InnoDB selalu memerlukan indeks untuk setiap batasan kunci asing?

  4. Transformasi Split Bersyarat:Ekspor Data dari SQL Server ke Oracle dan Database MySQL

  5. mysql Kesalahan fatal:tidak dapat mengalokasikan memori untuk kumpulan buffer