ホームページ > データベース > mysql チュートリアル > JOIN を使用して MySQL の関連テーブルから最新の行のみを選択する方法は?

JOIN を使用して MySQL の関連テーブルから最新の行のみを選択する方法は?

Susan Sarandon
リリース: 2025-01-01 13:12:11
オリジナル
884 人が閲覧しました

How to Select Only the Most Recent Row from a Related Table in MySQL using JOINs?

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 タイプについて不確実性も表明されました。簡単に説明します。

  • INNER JOIN: 両方のテーブルで一致する行を取得します。
  • LEFT JOIN: からすべての行を取得します。右側に一致するものが存在しない場合でも、左側のテーブルtable.
  • RIGHT JOIN: LEFT JOIN と似ていますが、右側のテーブルからすべての行を取得します。
  • FULL JOIN: INNER JOIN とOUTER JOINS、両方からすべての行を返すテーブル。

正しい JOIN タイプの選択は、特定のクエリ要件によって異なります。

以上がJOIN を使用して MySQL の関連テーブルから最新の行のみを選択する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート