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

先ほど質問しましたが、別のSQL文で再度質問です。

PHPで書かれたスクリプトの中で、Postgresからmysqlへ移行作業を行っています。

Postgresで動いている以下のSQL文を、mysqlでも動くようにしたいのです。

SELECT tableA.*,tableB.a,tableB.b from tableA where id='1'

idはtableAとtableBの両方にあるカラムです。値1は仮のものです。


質問事項
◆mysqlで動く代替のSQL文を教えてください。

補足
○PHPで接続しているため、その点も考慮願います
○mysqlのバージョンは5.1.34です
○エラーメッセージは "Where句があいまい"という旨のものが出ます。
ただ、どう改善すればいいのかが分かりません。
おそらくテーブルの指定を行えばいいのだと思いますが、、、、
結合したテーブルの中からid=1を見よ、という命令だと思いますがどうでしょうか。

よろしくお願いします。

●質問者: hi-roo.
●カテゴリ:インターネット ウェブ制作
✍キーワード:MySQL PHP SELECT SQL あいまい
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● きゃづみぃ
●23ポイント

あと

SELECT tableA.*,tableB.a,tableB.b from tableA where id='1'

と tableB 抽出しているにも関わらず

from には 入ってません。

入れておいたほうがいいでしょう。


2 ● きゃづみぃ
●23ポイント

>SELECT tableA.*,tableB.a,tableB.b from tableA where id='1'

>idはtableAとtableBの両方にあるカラムです。値1は仮のものです。

で、実際に id='1'で 使用するのは どちらのテーブルなんでしょうか?

だから記述が あいまい と言われるのです。

tableAでしたら

tableA.id='1'


tableBでしたら

tableB.id='1'

とすべきです。


3 ● pretaroe
●23ポイント

SELECT tableA.*,tableB.a,tableB.b from tableA INNER JOIN tableB ON tableA.id=tableB.id where id='1'

または

SELECT tableA.*,tableB.a,tableB.b from tableA,tableB where tableA.id=tableB.id and id='1'


4 ● deflation
●23ポイント ベストアンサー

まず第一に、以下のSQL文はPostgreSQLでは動かないはずです。

ご確認ください。

SELECT tableA.*,tableB.a,tableB.b from tableA where id='1'

正しくは、

SELECT tableA.*,tableB.a,tableB.b from tableA,tableB where tableA.id='1';

です。


もし、tableAのidカラムとtableBのidカラムが '1' であるレコードを抽出したいのなら、下記のようにします。

SELECT tableA.*,tableB.a,tableB.b from tableA,tableB where tableA.id='1' AND tableB.id='1';
関連質問


●質問をもっと探す●



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