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

SQLはwhere句の副選択から列を使用します

    WHEREで列エイリアスを使用することはできません 条項。

    したがって、クエリを外側の選択でラップし、そこに条件を適用します

    SELECT * 
      FROM
    (
      SELECT a, b, c,
        (SELECT d FROM B LIMIT 0,1) d
      FROM A
    ) q
     WHERE d >= 10
    

    または、HAVINGでその条件を導入できます 代わりに節

    SELECT a, b, c,
        (SELECT d FROM B LIMIT 0,1) d
      FROM A
    HAVING d >= 10
    

    さらに別のアプローチは、CROSS JOINを使用することです。 WHEREで条件を適用します 条項

    SELECT a, b, c, d
      FROM A CROSS JOIN 
    (
      SELECT d FROM B LIMIT 0,1
    ) q
     WHERE d >= 10
    

    これがSQLFiddle です。 上記のすべてのクエリのデモ。



    1. 未使用のものでお金を稼ぐ:シェアリングエコノミーデータモデル

    2. MySQLパスワード機能

    3. ストアドプロシージャのループでのカーソルの使用

    4. PostgreSQLでアイドル状態の接続を自動的に閉じる方法は?