ホームページ > データベース > mysql チュートリアル > 対応者が欠落している 2 つの MySQL テーブルからデータを取得するにはどうすればよいですか?

対応者が欠落している 2 つの MySQL テーブルからデータを取得するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-04 03:36:11
オリジナル
928 人が閲覧しました

How to Retrieve Data from Two MySQL Tables with Missing Correspondents?

対応関係が欠落している MySQL の 2 つのテーブルから選択する

MySQL の 2 つのテーブルからデータを取得し、すべての行が 1 つに含まれていないケースを処理するにはテーブルのもう一方のテーブルに対応する行がある場合は、外部結合を利用できます。このアプローチは、時代遅れの暗黙的結合方法とは異なり、柔軟性が高くなります。

次の例を考えてみましょう。

カテゴリ (列 ID とタイトルを持つ) と製品 (列 ID を持つ) という 2 つのテーブルがあります。 、所有者 ID、タイトル、および価格。所有者 ID はカテゴリ テーブルの ID を参照します)。

クエリは、すべてのカテゴリとその最小価格と最大価格をグループ化して取得することを目的としています。カテゴリID。ただし、現在のクエリでは、対応する製品のないカテゴリが除外されます。

この問題を解決するには、LEFT JOIN を使用します。

SELECT
    sc.*,
    IFNULL(MIN(s.price), 0) AS minp,
    IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
ログイン後にコピー

LEFT JOIN により、カテゴリ テーブルのすべての行が確実に含まれます。 products テーブルに対応する行がない場合でも。 IFNULL 関数は、製品のないカテゴリの minp と maxp に 0 を割り当て、NULL 値が表示されないようにします。

または、特定の要件に応じて、これらのカテゴリに対して 0 ではなく NULL を返すこともできます。

以上が対応者が欠落している 2 つの MySQL テーブルからデータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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