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

MySQLでWITH句をどのように使用しますか?

    バージョン8.0より前のMySQLWITH句をサポートしていません (SQL Server用語でのCTE、Oracleでのサブクエリファクタリング)、したがって、次を使用する必要があります:

    • 一時テーブル
    • 派生テーブル
    • インラインビュー(事実上、WITH句が表すもの-互換性があります)

    この機能のリクエストは2006年にさかのぼります。

    前述のように、悪い例を示しました。列の出力を変更しない場合は、副選択を実行する必要はありません。

      SELECT * 
        FROM ARTICLE t
        JOIN USERINFO ui ON ui.user_userid = t.article_ownerid
        JOIN CATEGORY c ON c.catid =  t.article_categoryid
       WHERE t.published_ind = 0
    ORDER BY t.article_date DESC 
       LIMIT 1, 3
    

    より良い例を次に示します。

    SELECT t.name,
           t.num
      FROM TABLE t
      JOIN (SELECT c.id
                   COUNT(*) 'num'
              FROM TABLE c
             WHERE c.column = 'a'
          GROUP BY c.id) ta ON ta.id = t.id
    


    1. SalesforceおよびOktaシングルサインオン(SSO)でのODBCの使用

    2. SQL出力句が挿入されていない列を返すことは可能ですか?

    3. エラー:TCPプロバイダー:エラーコード0x2746。ターミナルを介したLinuxでのSQLセットアップ中

    4. Laravel:PDOException:ドライバーが見つかりませんでした