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

MySQL:Nieprawidłowe użycie funkcji grupy

Musisz użyć HAVING , a nie WHERE .

Różnica jest taka:WHERE filtry klauzul, które wiersze wybiera MySQL. Wtedy MySQL grupuje wiersze i agreguje liczby dla Twojego COUNT funkcja.

HAVING jest jak WHERE , tylko dzieje się to po COUNT wartość została obliczona, więc będzie działać zgodnie z oczekiwaniami. Przepisz swoje podzapytanie jako:

(                  -- where that pid is in the set:
SELECT c2.pid                  -- of pids
FROM Catalog AS c2             -- from catalog
WHERE c2.pid = c1.pid
HAVING COUNT(c2.sid) >= 2)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wiele instrukcji INSERT mysql w jednym zapytaniu php

  2. Błąd PHP z MySQL 8.0+:serwer zażądał metody uwierzytelniania nieznanej klientowi

  3. Jak tworzyć zapytania sprzężenia za pomocą Sequelize na Node.js

  4. Jak podzielić ciąg nazwy w mysql?

  5. 3 sposoby na znalezienie wierszy zawierających małe litery w MySQL