sql过滤2个或更多

时间:2016-03-11 15:20:04

标签: mysql sql filter count having

    voorletters, naam, geslacht, boete    
    B   Niewenburg  V   25.00
    B   Niewenburg  V   140.00
    D   Moerman V   35.00
    D   Moerman V   50.00
    DD  Cools   V   75.00
    DD  Cools   V   85.00
    E   Bakker, de  M   30.00
    E   Bakker, de  M   35.00
    E   Bakker, de  M   90.00
    E   Bakker, de  M   95.00
    IP  Baalen, van V   140.00
    R   Permentier  M   100.00

我将此作为sql语句

SELECT VOORLETTERS, NAAM, GESLACHT, BEDRAG
FROM SPELER S
RIGHT JOIN BOETE B ON B.SPELERSNR = S.SPELERSNR
LEFT joiN BESTUURSLID BL ON BL.SPELERSNR = S.SPELERSNR
GROUP BY VOORLETTERS, NAAM, GESLACHT, BEDRAG

如何才能让我看到只有2个或更多'boete'的人?

所以我得到了这个答案

voorletters, naam, geslacht, boete    
B   Niewenburg  V   25.00
B   Niewenburg  V   140.00
D   Moerman V   35.00
D   Moerman V   50.00
DD  Cools   V   75.00
DD  Cools   V   85.00
E   Bakker, de  M   30.00
E   Bakker, de  M   35.00
E   Bakker, de  M   90.00
E   Bakker, de  M   95.00

1 个答案:

答案 0 :(得分:1)

使用子选择来获取speler中有两行或更多行的人

SELECT VOORLETTERS, NAAM, GESLACHT, BEDRAG
FROM SPELER S
RIGHT JOIN BOETE B ON B.SPELERSNR = S.SPELERSNR
LEFT joiN BESTUURSLID BL ON BL.SPELERSNR = S.SPELERSNR
where s.naam in (select naam from (select naam, count(*) from speler group by name ) )
GROUP BY VOORLETTERS, NAAM, GESLACHT, BEDRAG