MySQL JOIN 経由で最新の行のみを選択する
顧客データにアクセスするためのテーブルの結合に関連して、必要な状況が発生する可能性があります。関連テーブルから最新のエントリのみを取得します。これは、履歴データが保存されるシナリオでよく見られます。幸いなことに、MySQL にはこれを実現するための複数のアプローチが用意されています。
その 1 つの方法には、WHERE 句内で相関サブクエリを利用することが含まれます。このアプローチには、親テーブルのエイリアスを参照して、子テーブルから一致する行を取得することが含まれます。例:
SELECT c.*, FROM client AS c LEFT JOIN client_calling_history AS cch ON cch.client_id = c.client_id WHERE cch.cchid = ( SELECT MAX(cchid) FROM client_calling_history WHERE client_id = c.client_id AND cal_event_id = c.cal_event_id )
このクエリは、各クライアントの最新の通話履歴レコードのみを取得します。
さらに、LIKE 述語内で CONCAT を使用すると述べました。この使用法は MySQL で有効であり、連結されたカラム値内の部分文字列を検索できます。
最初のクエリでは、両方のテーブルから一致する行を返す INNER JOIN を使用しました。ただし、適切な JOIN タイプについて不確実性も表明されました。簡単に説明します。
正しい JOIN タイプの選択は、特定のクエリ要件によって異なります。
以上がJOIN を使用して MySQL の関連テーブルから最新の行のみを選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。