• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:多段外部結合はできる?)

多段外部結合の実現方法とは?

このQ&Aのポイント
  • mysqlにおいて、多段の外部結合はできるのか今模索しております。Aテーブルに対してBテーブルを外部結合し、さらにBテーブルに対してCテーブルを外部結合したいのですが、Cテーブルの値が取得できずNULLになってしまいます。
  • 例えば、AテーブルのidとBテーブルのb_idを外部キーで関連付けし、BテーブルのidとCテーブルのc_idを外部キーで関連付けています。しかし、以下のクエリを実行するとCテーブルの値が取得できません。どのようにすればCテーブルの値も正常に取得できるでしょうか?
  • select A.name, B.name, C.name from A left join B on (A.b_id = B.id) left join C on (B.c_id = C.id)

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

普通にできるでしょ? create table A (id int,name varchar(20),b_id int); create table B (id int,name varchar(20),c_id int); create table C (id int,name varchar(20)); insert into A values(0,'A0',0),(1,'A1',0),(2,'A2',1),(3,'A3',1),(4,'A4',2),(5,'A5',2),(6,'A6',3),(7,'A7',3); insert into B values(0,'B0',0),(1,'B1',0),(2,'B2',1),(3,'B3',1); insert into C values(0,'C0'),(1,'C1'); select * from A left join B on A.b_id = B.id left join C on B.c_id = C.id;

cyanberry
質問者

お礼

回答ありがとうございます。 おっしゃる通り、普通にできました。 実際のところ例よりも複雑なクエリなのですが、外部結合の条件の書き間違いがあったため取得出来ていないだけでした。 てっきり、こういうことはできないものだと思い込んでしまいました・・・。 失礼いたしました。

すると、全ての回答が全文表示されます。

関連するQ&A