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

MySQLでJOINとUNIONを二つ使う事って出来るのでしょうか?


"SELECT * FROM profile INNER JOIN address ON profile.address=address.address_id UNION SELECT * FROM mydata";

上記のようなsqlを書いたのですが、エラーになります。
上記は、「profile」テーブルのaddressフィールドをaddressテーブルのIDと結合して、住所名を読み込みたいという意味です。mydateとは、profileとは別のテーブルで、addressフィールドを結合する必要がないとします。

もし、UNIONさせるテーブルにJOINで別のテーブルを結合させる方法がありましたら、コードを教えていただければと思います。(できれば、WHEREやORDER BYをする場合の注意点なども)

MySQLは4.x系以上でお願いします。
尚、出力時はPHPで出力して確認しています。

●質問者: kt26
●カテゴリ:ウェブ制作
✍キーワード:MySQL ON PHP Profile SELECT
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● un0
●60ポイント

UNION の前半と後半の*で選択されるフィールドが異なっているからだと思います。

それぞれ明示的に合わせて指定してみてはいかがでしょうか。

【前半部】

SELECT a,b,c FROM profile INNER JOIN address ON profile.address=address.address_id

【後半部】

SELECT a,b,c FROM mydata

参考になれば幸いです。

◎質問者からの返答

回答ありがとうございます。コメントでいただいたMookさんの参考サイトなどを見ながら、ようやく意味を把握出来ました。

関連質問


●質問をもっと探す●



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