ホームページ > データベース > mysql チュートリアル > 同じテーブルに 2 回参加する: いつ、どのように行うのがベスト プラクティスですか?

同じテーブルに 2 回参加する: いつ、どのように行うのがベスト プラクティスですか?

Mary-Kate Olsen
リリース: 2025-01-07 07:27:42
オリジナル
224 人が閲覧しました

Joining the Same Table Twice: When and How is it Best Practice?

同じテーブルに 2 回結合する: ベスト プラクティス

問題:

列が一致する 2 つのテーブルを結合する場合、どのように結合するか両方の列に対応するデータを同時に効率的に取得できますか?

メソッド1: 2 回結合

上の例で見られるように、同じテーブルを 2 回結合すると、一致する各列に基づいて個別のデータを取得できます:

SELECT t.PhoneNumber1, t.PhoneNumber2, 
       t1.SomeOtherFieldForPhone1, t2.someOtherFieldForPhone2
FROM Table1 t
JOIN Table2 t1 ON t1.PhoneNumber = t.PhoneNumber1
JOIN Table2 t2 ON t2.PhoneNumber = t.PhoneNumber2
ログイン後にコピー

方法 2 : OR in ON 句

機能としては実証されていませんが、別のアプローチでは、結合を試みます。 ON 句で OR を使用して複数の一致する列を使用する場合:

SELECT ...
FROM Table1
INNER JOIN Table2 
   ON Table1.PhoneNumber1 = Table2.PhoneNumber OR
      Table1.PhoneNumber2 = Table2.PhoneNumber
ログイン後にコピー

ベスト プラクティス:

方法 1 が最良の解決策として推奨されます。複雑な OR に依存せずに、複数の一致する列に対応するデータを取得する簡単かつ明確な方法を提供します。

設計を改善するための代替案:

どちらの方法でも目的の結果を達成できますが、テーブル ベースの結合に依存しないようにデータベース設計のベスト プラクティスを考慮することが重要です。電話番号などの自然キー。自然キーは頻繁に変更される可能性があり、データの整合性に関する潜在的な問題が発生する可能性があります。

以上が同じテーブルに 2 回参加する: いつ、どのように行うのがベスト プラクティスですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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