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

Bergabunglah dan banyak serta ketentuan

Anda harus menggunakan kombinasi IN() dan GROUP BY ... HAVING untuk mencapai ini. Juga tidak perlu bergabung jika yang Anda butuhkan hanyalah ID pengguna. Jadi sesuatu seperti:

SELECT user, COUNT(attribute) AS attribute_count
FROM attributes
WHERE attribute IN(...) /* include your set of attributes here */
GROUP BY user
HAVING attribute_count = ? /* include number equal to number of attribute ID's in IN() above */

Jika Anda memerlukan ID dan nama pengguna, Anda cukup bergabung dengan kumpulan rekaman ini yang berasal dari kueri di atas sebagai filter ke tabel pengguna:

SELECT user.id, user.name
FROM user
INNER JOIN
  (
    SELECT user, COUNT(attribute) AS attribute_count
    FROM attributes
    WHERE attribute IN(...) /* include your set of attributes here */
    GROUP BY user
    HAVING attribute_count = ? /* include number equal to number of attribute ID's in IN() above */
  ) AS filter
  ON user.id = filter.user


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah MySQL mendukung tanggal historis (seperti 1200)?

  2. Cara Menyebarkan Percona XtraDB Cluster 8 untuk Ketersediaan Tinggi

  3. mengapa mysqld terletak di 4 tempat di sistem linux?

  4. Akses ditolak untuk pengguna 'root'@'localhost' (menggunakan kata sandi:YA) (Mysql::Error)

  5. Bagaimana cara menjalankan dua kueri mysql sebagai satu di PHP/MYSQL?