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

MySQLで交差点を設定する:クリーンな方法

    INNER JOIN(または単にJOIN)はあなたが必要とする交差点ではありませんか?関連する共通の列を結合するとします。

    したがって:

    SELECT s1.id
      FROM (SELECT id
              FROM subject_attribute
             WHERE attribute = 'des_sen'
               AND numerical_value >= 2.0
           ) AS s1
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'tough'
              AND numerical_value >= 3.5
           ) AS s2
        ON s1.id = s2.id
    

    これは、N個のクエリ(N> 2)にクリーンかつ直線的に拡張されます。

    SELECT s1.id
      FROM (SELECT id
              FROM subject_attribute
             WHERE attribute = 'des_sen'
               AND numerical_value >= 2.0
           ) AS s1
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'tough'
              AND numerical_value >= 3.5
           ) AS s2
        ON s1.id = s2.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'though'
              AND numerical_value = 14
           ) AS s3
        ON s1.id = s3.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'through'
              AND numerical_value != 45
           ) AS s4
        ON s1.id = s4.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'plough'
              AND numerical_value < 9
           ) AS s5
        ON s1.id = s5.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'cough'
              AND numerical_value < 5
           ) AS s6
        ON s1.id = s6.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'bucolic'
              AND numerical_value >= 3.5
           ) AS s7
        ON s1.id = s7.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'set'
              AND numerical_value BETWEEN 0.23 AND 3.0
           ) AS s8
        ON s1.id = s8.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'intelligent'
              AND numerical_value >= 0.001
           ) AS s9
        ON s1.id = s9.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'anal-retentive'
              AND numerical_value < 7
           ) AS s10
        ON s1.id = s10.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'magnificent'
              AND numerical_value = 35
           ) AS s11
        ON s1.id = s11.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'quantum'
              AND numerical_value >= 55
           ) AS s12
        ON s1.id = s12.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'thoughtfulness'
              AND numerical_value >= 350.237
           ) AS s13
        ON s1.id = s13.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'calamity'
              AND numerical_value = 3.0
           ) AS s14
        ON s1.id = s14.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'pink'
              AND numerical_value > 0.5
           ) AS s15
        ON s1.id = s15.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'cornucopia'
              AND numerical_value BETWEEN 1 AND 12
           ) AS s16
        ON s1.id = s16.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'maudlin'
              AND numerical_value < 3.625
           ) AS s17
        ON s1.id = s17.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'triad'
              AND numerical_value >= 1.723
           ) AS s18
        ON s1.id = s18.id
      JOIN (SELECT id
              FROM subject_attribute
             WHERE attribute = 'ambient'
              AND numerical_value >= 3.1
           ) AS s19
        ON s1.id = s19.id
    


    1. 同じテーブル内からのMYSQLアップデート

    2. SQLデータベースからの単純ランダムサンプル

    3. PostgreSQLに存在しない場合はCREATEDATABASEをシミュレートしますか?

    4. EntityFramework6トランザクションのロールバック