Mega Code Archive

 
Categories / MySQL / Select Clause
 

Subquery with having clause

mysql> mysql> mysql> CREATE   TABLE TEAMS     ->         (TEAMNO         INTEGER      NOT NULL,     ->          EmployeeNO       INTEGER      NOT NULL,     ->          DIVISION       CHAR(6)      NOT NULL,     ->          PRIMARY KEY    (TEAMNO)             ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> mysql> INSERT INTO TEAMS VALUES (1,  6, 'first'); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO TEAMS VALUES (2, 27, 'second'); Query OK, 1 row affected (0.00 sec) mysql> mysql> CREATE   TABLE MATCHES     ->         (MATCHNO        INTEGER      NOT NULL,     ->          TEAMNO         INTEGER      NOT NULL,     ->          EmployeeNO       INTEGER      NOT NULL,     ->          WON            SMALLINT     NOT NULL,     ->          LOST           SMALLINT     NOT NULL,     ->          PRIMARY KEY    (MATCHNO)            ); Query OK, 0 rows affected (0.00 sec) mysql> mysql> INSERT INTO MATCHES VALUES ( 1, 1,   6, 3, 1); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 2, 1,   6, 2, 3); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 3, 1,   6, 3, 0); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 4, 1,  44, 3, 2); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 5, 1,  83, 0, 3); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 6, 1,   2, 1, 3); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 7, 1,  57, 3, 0); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 8, 1,   8, 0, 3); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES ( 9, 2,  27, 3, 2); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES (10, 2, 104, 3, 2); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES (11, 2, 112, 2, 3); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES (12, 2, 112, 1, 3); Query OK, 1 row affected (0.00 sec) mysql> INSERT INTO MATCHES VALUES (13, 2,   8, 0, 3); Query OK, 1 row affected (0.00 sec) mysql> mysql> SELECT   TEAMNO, DIVISION     -> FROM     TEAMS     -> WHERE    TEAMNO IN     ->         (SELECT   TEAMNO     ->          FROM     MATCHES     ->          GROUP BY TEAMNO     ->          HAVING   COUNT(DISTINCT EmployeeNO) > 4); +--------+----------+ | TEAMNO | DIVISION | +--------+----------+ |      1 | first    | +--------+----------+ 1 row in set (0.00 sec) mysql> mysql> drop table teams; Query OK, 0 rows affected (0.00 sec) mysql> drop table matches; Query OK, 0 rows affected (0.00 sec)