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

SQL:交差する構文エラー?

    使用しているように見えるMySQLは、INTERSECTをサポートしていません 構文。別の方法で解決する必要があります。

    この場合、それは些細なことです-一部の部品の「緑」と「赤」を提供するすべてのサプライヤーのリストが必要です-クエリは部品自体が関連しているかどうかをわざわざ確認しないので、非常に簡単に解決できますこのように:

    SELECT Suppliers.sid
    FROM Suppliers
    JOIN Catalog ON Catalog.sid = Suppliers.sid
    JOIN Parts ON Parts.pid = Catalog.pid
    WHERE Parts.color IN ('red', 'green')
    GROUP BY Suppliers.sid
    HAVING COUNT(DISTINCT Parts.color) = 2
    

    個人的には、元のクエリが典型的なINTERSECTであるとは思いません。 問題。 JOINをご覧ください INTERSECTをエミュレートするための一般的なソリューションとしてVinkoVrsalovicが提供するソリューション (RDBMSが実際にINTERSECTを提供する場合でも、私はこれを好みます ネイティブ)。



    1. n分ごとに関数を呼び出すようにタイマーを設定するにはどうすればよいですか?

    2. JDBC-Oracle ArrayIndexOutOfBoundsException

    3. SQL Serverのリンクサーバーからテーブルのリストを返す(T-SQLの例)

    4. SQLAlchemy式から生のコンパイル済みSQLクエリを取得するにはどうすればよいですか?