sql >> データベース >  >> RDS >> Mysql

MySQLの結果をカウントする方法は、多くのスルー関係になります

    おそらく2人の生徒にとって、最もシンプルで、最もクリーンで、最速です

    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. Mysqlイベントが機能しない

    2. PHPで変更/改訂スクリプトを追跡しますか?

    3. Rails:ActiveRecord::Baseの接続プールはありません

    4. INTでdbテーブルを更新します