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

SQLクエリ少なくとも1つ

    評価が10を超える投稿が少なくとも1つあるすべてのユーザーを検索するには、次を使用します。

    SELECT u.*
      FROM USERS u
     WHERE EXISTS(SELECT NULL
                    FROM POSTS p
                   WHERE p.user_id = u.id
                     AND p.rating > 10)
    

    EXISTSはその中のSELECTステートメントを気にしません-NULLを1/0に置き換えることができます。これにより、ゼロ除算の数学エラーが発生するはずです...しかし、EXISTSはでのフィルタリングのみに関係するため、そうではありません。 WHERE句。

    相関(WHERE p.user_id =u.id)は、これが相関サブクエリと呼ばれる理由であり、評価の比較に加えて、id値が一致するUSERSテーブルからの行のみを返します。

    EXISTSは、状況に応じて、基準が満たされるとすぐにtrueを返すため、より高速になります。重複は関係ありません。



    1. MS SQL Server 2005の日付から週番号を取得しますか?

    2. mysqlデータバージョン管理システムのベストプラクティス

    3. 列'id'のないテーブルを続編します

    4. MySQL REGEXPの単語境界[[:<:]] [[:>:]]と二重引用符