Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dołącz i wielokrotność i warunki

Będziesz musiał użyć kombinacji IN() i GROUP BY ... HAVING osiągnąć to. Nie ma również potrzeby dołączania, jeśli potrzebujesz tylko identyfikatora użytkownika. Czyli coś takiego:

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 */

Jeśli potrzebujesz identyfikatora użytkownika i nazw, możesz po prostu dołączyć ten zestaw rekordów pochodzący z powyższego zapytania jako filtr do tabeli użytkowników:

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. Jak sprawdzić, czy wartość jest liczbą całkowitą w MySQL?

  2. InnoDB:nie można zablokować ./ibdata1 błąd:35

  3. wypełnienie wymaganej ilości za pomocą mysql

  4. Co oznacza słowo kluczowe KLUCZ?

  5. convert_tz zwraca wartość null