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

foreachループを使用して配列の反復を最適化する

    良いMySQLクエリを実行するだけで済みます。

    こちら をご覧ください。 。

    足し算、引き算、date BETWEEN x AND Yなどを行うことができます 、SELECT SUM()を実行できます GROUP BY など。

    Hakanが意味するのは(私が思うに)あなたがそれを間違った方法でやっているということです:あなたは最初にあなたのためにほとんどすべての仕事をするクエリをするべきです。そのような複雑なものを開発する必要はありません。

    そして他の3つのアドバイス:

    • $expense->DateのようなPHPのキーワードは避けてください 。これにより、構文の強調表示の問題が発生します(最高の 場合、最悪 Phpはあなたのコードを理解しません。
    • コードにコメントを追加して、何をしようとしているのかを説明します。
    • PHP ANDのキーワードは避けてください SQLクエリ。 'Dateという名前の列があります 'および'Typeという名前の列 '。これは安全ではありません。

    これは、SQLがどのように見えるかのほんの始まりに過ぎず、コードの95%をほぼカバーしているはずです。注:これは提案です。すべてのデータベースサーバーに任せてください。これはそのために行われます:

    SELECT
        ps.Due,ps.Date,
        wt.Amount,wt.Date,
        ex.Amount,ex.Date
    
    LEFT JOIN patient_sessions ps
        ON xxx
        WHERE ps.Type='Session'
        AND ps.Date
            BETWEEN DATE_ADD(NOW(), INTERVAL '-28' DAY)
            AND     DATE_ADD(NOW(), INTERVAL 1 DAY)
    LEFT JOIN work_times wt
        ON xxx
    LEFT JOIN expenses ex
        ON xxx
        WHERE ex.Client='Psychotherapy'
    


    1. SQL Server 2005 / 2008 - 複数のファイル グループ?

    2. 2018年のレビュー:見逃した可能性のある7つのMariaDBマイルストーン

    3. C#で別のフォームからメソッドを呼び出す

    4. Pythonでカウント値を保存する方法