- ベストアンサー
3つの表の結合
select a.keino,c.keinaj1,b.kumino from gassan a,kumiai b,keiotr c where a.keino=b.daichono and b.daichono = c.keino 以上のような記述をしたところ、レコードが選択されないと 出てしまいます。 それぞれのkeino、daichonoには同じ値が入っているのですが 条件の指定の仕方がよくないのでしょうか? 3つ以上のテーブルの結合は始めてなので、教えていただけると ありがたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
表aと表bは結合されています。表bと表cは結合されています。ですが表aと表cは結合されていませんので、全表が同じレコード数というのが前提条件で以下の様にされてみてください、 select a.keino,c.keinaj1,b.kumino from gassan a,kumiai b,keiotr c where a.keino=b.daichono and a.keino = c.keino だめなら、 select a.keino,d.keinaj1,d.kumino from gassan a,(select c.keinaj1,b.kumino from kumiai b,keiotr c where b.daichono = c.keino) d where a.keino=b.daichono で如何でしょう?動作確認しておりませんので自信はありませんご参考までに。
その他の回答 (1)
- cool_dance
- ベストアンサー率50% (1/2)
テーブルaとテーブルb,テーブルbとテーブルcが結合されていれば、テーブルaとテーブルcは結合されています。 SQL文の記述としては正しいと思います。 可能性としては、keino, daichono のいずれかに前もしくは後にブランクが入っているなどということはないでしょうか?差し支えのない範囲でデータを提示していただけると更にアドバイス可能です。
お礼
ありがとうございました。 仰るとおり、単純に記述のミスでした。
お礼
ありがとうございました。