ホームページ > データベース > mysql チュートリアル > LEFT JOIN を使用して MySQL で 3 つのテーブルを正しく結合し、すべての人物とそれに関連する恐怖を取得する方法

LEFT JOIN を使用して MySQL で 3 つのテーブルを正しく結合し、すべての人物とそれに関連する恐怖を取得する方法

Susan Sarandon
リリース: 2024-12-21 12:09:11
オリジナル
649 人が閲覧しました

How to Correctly Join Three Tables in MySQL Using LEFT JOIN to Retrieve All Persons and Their Associated Fears?

MySQL LEFT JOIN を使用した複数のテーブルの結合

このシナリオでは、3 つのテーブルを結合するという課題に遭遇します: 'persons' 「恐怖」、および「人物_恐怖」。目的は、恐怖を持たない人も含めて、'人' テーブルのすべてのレコードを、関連する恐怖とともに表示することです。

最初に、提供された LEFT JOIN クエリは、' person_fear.personID' と ' を結合しようとします。 Person_Fear.FearID'、誤った結果が得られます。正しいアプローチは、適切な外部キー関係に基づいて、'Person_Fear' を 'persons' および 'Fears' と結合することです。

解決策:

SELECT Persons.Name, Persons.SS, Fears.Fear 
FROM Persons
LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID
LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID
ログイン後にコピー

この改訂されたクエリは、「人物」を効果的に結合します。 'person_Fear' と 'Fears' はそれぞれの外部キーを介して生成されます。 「パーソン」と「パーソン_Fear」の間の LEFT JOIN により、関連する恐怖があるかどうかに関係なく、「パーソン」テーブルのすべてのレコードが確実に含まれます。

代替解決策:

SELECT Persons.Name, Persons.SS, Fears.Fear 
FROM Persons
LEFT JOIN Person_Fear 
    INNER JOIN Fears ON Person_Fear.FearID = Fears.FearID
ON Person_Fear.PersonID = Persons.PersonID
ログイン後にコピー

この代替アプローチでは、「Person_Fear」と「恐怖」をフィルタリングして、関連する恐怖を絞り込みます。後続の「persons」との LEFT JOIN によっても、すべての個人が結果に含まれることが保証されます。

以上がLEFT JOIN を使用して MySQL で 3 つのテーブルを正しく結合し、すべての人物とそれに関連する恐怖を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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