- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2テーブルが同じユーザテーブル参照するときの結合)
2テーブルが同じユーザテーブル参照するときの結合
このQ&Aのポイント
- 2つのテーブルで、同じユーザテーブルを参照してデータ取得する方法について調査しました。
- 結合を行う際に、挑戦者の名前が取得できない問題が発生しました。
- 試したクエリの結果、挑戦者のユーザIDしか取得できなかったことがわかりました。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
アクションが作成されたが挑戦者がまだ0名の状態,では, actionテーブルには行はあるが, resultテーブルにはそれと結合できる行が存在しないのではないか, という印象があるので, 質問者がなぜ result LEFT JOIN action としたのか, 与えられた説明文からは納得できなかった。 SELECT a.id AS "アクション", a.user_id AS "作成者", r.user_id AS "挑戦者" FROM action a LEFT JOIN result r ON a.id = r.action_id JOIN user u1 ON a.user_id = u1.id JOIN user u2 ON r.user_id = u2.id
その他の回答 (1)
- Siegrune
- ベストアンサー率35% (316/895)
回答No.2
## 余計なお世話の話ですが。 MySQLでは、Left Join = Left Outer Join (他のDBでは、Left Join = Left Inner Join が多い) http://dev.mysql.com/doc/refman/4.1/ja/join.html の 「上の構文リストの最後に挙げた LEFT OUTER JOIN 構文は、単に ODBC との互換性を確保するためのものです。 」 を参照。(古いマニュアルですけど変わってなかったと思います) したがって、ANo.1の方の回答で、 「actionテーブルには行はあるが, resultテーブルにはそれと結合できる行が存在しない」ときも出てきます。 ## 私は、これがあるからLeft Join のように Inner、Outerを書かないJoinは嫌い! ## 昔はまった。
質問者
お礼
補足ありがとうございました 参考になりましたー
お礼
回答ありがとうございました。 >質問者がなぜ result LEFT JOIN action としたのか, >与えられた説明文からは納得できなかった ・勘違いしていました ・回答参考になりましたー