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

同じ列で満たすMYSQLANDクエリ

    stop_id 同じ行に2つの異なる値を含めることはできません。

    集約は、必要なことを実行する1つの方法です:

    SELECT b.bus_name
    FROM buses b JOIN
         route_connect rc
         ON rc.busid = b.id JOIN
         stops s
         ON s.id = rc.stop_id
    GROUP BY b.bus_name
    HAVING SUM( s.stop_name = 'Sydney' ) > 0 AND
           SUM( s.stop_name = 'Melbourne' ) > 0;
    

    これにより、両方の都市の名前で停車するバスが返されます。

    バスにはたくさんの停留所がある可能性があることを考えると、次のようにする方が効率的かもしれません。

    SELECT b.bus_name
    FROM buses b JOIN
         route_connect rc
         ON rc.busid = b.id JOIN
         stops s
         ON s.id = rc.stop_id
    WHERE s.stop_name in ('Sydney', 'Melbourne')
    GROUP BY b.bus_name
    HAVING COUNT(DISTINCT s.stop_name) = 2;
    


    1. PHP / MySQL/Apacheで国際文字を適切に処理する方法

    2. PHP Javascript?ユーザーがページまたはブラウザを閉じたときに何かをする

    3. UNIXタイムスタンプを使用した1か月以内のSQLカウントレコード

    4. MySQLレプリケーションとGTIDベースのフェイルオーバー-誤ったトランザクションの詳細