Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да броим резултатите от MySQL в релация има-много-през

Вероятно най-простият, най-чистият и най-бързият само за двама ученика :

SELECT count(*) AS ct
FROM   student_club x
JOIN   student_club y USING (stud_id)
WHERE  x.club_id = 30
AND    y.club_id = 50;

Не е необходимо да се присъединявате към student таблица за това изобщо - веднага щом знаете списъка с stud_id се интересувате.

За произволен брой ученици , запитването на Мартин е по-удобно. Можете да опростите по подобен начин:

SELECT count(*) AS ct
FROM (
   SELECT stud_id
   FROM   student_club
   WHERE  club_id IN (30, 50)
   GROUP  BY 1
   HAVING count(*) = 2 -- adapt to number of items in list
   ) x;

Изисква това (stud_id, club_id) е уникален, разбира се, и елементите от списъка също са уникални.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените началния номер на поръчката в Magento

  2. Връзка на таблицата за подтипове

  3. Система за маркиране:Въпроси за решение на Toxi

  4. Създайте вложен json обект с помощта на php mysql

  5. Множество MySQL таблица към json_encode