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

Bagaimana menemukan apakah daftar/set persis di dalam daftar lain

Anda masih dapat menggunakan having , tetapi uji untuk setiap produk -- dan untuk tidak adanya produk lain:

SELECT o.order_id
FROM orders o
GROUP BY o.order_id
HAVING SUM( product_id = 222 ) > 0 AND
       SUM( product_id = 555 ) > 0 AND
       SUM( product_id NOT IN (222, 555) ) = 0 ;

Perhatikan bahwa ini menggunakan singkatan MySQL, di mana ekspresi boolean diperlakukan sebagai angka dengan 1 untuk true dan 0 untuk palsu. Sintaks standarnya adalah:

HAVING SUM( CASE WHEN product_id = 222 THEN 1 ELSE 0 END) > 0 AND
       SUM( CASE WHEN product_id = 555 THEN 1 ELSE 0 END ) > 0 AND
       SUM( CASE WHEN product_id NOT IN (222, 555) THEN 1 ELSE 0 END ) = 0 ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL Pesan berdasarkan kolom di tabel yang berbeda

  2. Menggunakan fungsi hitung untuk menentukan apa yang ditampilkan dalam pernyataan if

  3. Hitung catatan yang dimulai dengan huruf tertentu

  4. Bagaimana cara memformat tanggal dari stempel waktu di PHP?

  5. perbarui dengan pernyataan bergabung mysql?