ホームページ > データベース > mysql チュートリアル > SQL 左結合ですべての行ではなく 1 行だけが返されるのはなぜですか?

SQL 左結合ですべての行ではなく 1 行だけが返されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-12 13:25:14
オリジナル
217 人が閲覧しました

Why Does My SQL Left Join Only Return One Row Instead of All Rows?

SQL クエリが左結合ですべての行を返さない

このクエリは、jos_hp_properties テーブル (pr と短縮) からすべての行を取得することを目的としています。 jos_hp_properties2 テーブル (pr7 と短縮) の値を使用します。フィールドの名前はフィールドは、後者のテーブルの 23 に相当します。ただし、jos_hp_properties テーブルには 27 行が含まれているにもかかわらず、現在のクエリは 1 行のみを返します。

この問題に対処するには、次のように WHERE 句を JOIN ステートメントに移動する必要があります。

SELECT pr.*, pr7.value AS `room_price_high`
FROM `jos_hp_properties` pr
LEFT JOIN `jos_hp_properties2` pr7 
ON pr7.property=pr.id
AND 
pr7.field=23
ログイン後にコピー

この変更されたクエリでは、WHERE 句は結合前の結果セットを制限しなくなりました。代わりに、jos_hp_properties2 テーブルのフィールド 23 に対応する行がない場合でも、jos_hp_properties テーブルの行が含まれます (この場合、戻り値は NULL になります)。これにより、最初のテーブルのすべての行が、該当する場合は 2 番目のテーブルから必要なデータとともに返されるようになります。

以上がSQL 左結合ですべての行ではなく 1 行だけが返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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