人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

外部結合と等価結合を一度に使うことはできますか?

A、B、Cというテーブルがあるとします。

AとBは等価結合で、
AとCを外部結合にしたいと思います。

具体的にどう書けばいいのでしょうか?

SELECT
*
FROM
table_B b,
table_A a left join table_C c on a.id = c.aid
WHERE
b.id = a.bid

というようなイメージですが、動いてくれません。

●質問者: dingding
●カテゴリ:インターネット ウェブ制作
✍キーワード:AID ON SELECT イメージ 等価
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●35ポイント

(table_B b,table_A a) left join table_C c on a.id = c.aid

もしくは、等価結合をやめてinner joinで

(table_B b inner join table_A a on a.bid = b.id) left join table_C c on a.id = c.aid

どっちが良いかは、予測されるデータ件数分のテストデータを用意してテストしてみないと何とも言えませんが・・・


余談ですが

データベースは処理系によってパフォーマンスに大きな違いが出ますので

質問の際にはソフト名とバージョンを明記なさる事をお勧めします。

◎質問者からの返答

ありがとうございます。

すみません、環境を書いていませんでした。

MySQL4.0です。


2 ● toriaezu
●35ポイント

等価結合は「INNER JOIN」で、

外部結合は「LEFT OUTER JOIN」で表現することができます。

よって、以下のように書いてみてはいかがでしょうか。

SELECT

*

FROM

table_B b

INNER JOIN table_A a

ON b.id = a.bid

LEFT OUTER JOIN table_C c

ON a.id = c.aid

◎質問者からの返答

ありがとうございます。

うまくいきました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ