質問 |
||
| 質問者:niko06 | 副問合せをするとエラーになってしまいます | |
|---|---|---|
困り度:
|
お世話になります PHP+MySQLにて開発しています あるテーブル1とテーブル2を使って テーブル1のデータを列挙したいのですが うまく行かずエラーが出てしまいます 構造は以下のようになっています ----------------- テーブル1 ----------------- ID DATE MEMO 0 3/24 aaa 2 3/25 ccc ----------------- テーブル2 ----------------- ID BUNRUI 0 A 1 B 2 A テーブル2のBUNRUIが'A'の行のID(上で言うと0と2)を テーブル1のID検索条件にして、 かつDATEが'3/24'の行を取得したく思っています 書いたSQL文は SELECT * FROM テーブル1 WHERE date='3/24' AND id IN(SELECT id FROM テーブル2 WHERE bunrui='A') です。 結果としてテーブル1のID=0 DATE=3/24 MEMO=aaa が取れると良いのですが... 「SELECT id FROM テーブル2 WHERE bunrui='」 が不正とエラーが出てしまいます (判り難い説明で申し訳無いです…) 宜しくお願いします |
|
質問投稿日時:08/03/25 11:53 質問番号:3892992 |
||
回答良回答20pt |
|
| 回答者:yambejp | MySQLのサブクエリー対応は4.1以降じゃなかったですか? http://dev.mysql.com/doc/refman/4.1/ja/subqueries.html また4.1以降でもストレージエンジンの問題もあるかもしれません。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/25 13:44 回答番号:No.2 |
|
| この回答へのお礼 | 教えて頂いたURLを見たところ、 サブクエリ対応は4.1以降でした… 4.1以前のものの場合の書き方があるみたいです http://dev.mysql.com/doc/refman/5.1/ja/rewriting-subqueries.html 試してみたところ無事出来ました! SELECT * FROM テーブル1 WHERE date='3/24' AND id IN(SELECT id FROM テーブル2 WHERE bunrui='A') ↓ SELECT DISTINCT テーブル1.* FROM テーブル1,テーブル2 WHERE テーブル1.date='3/24' AND テーブル2.bunrui='A' AND テーブル1.ID=テーブル2.ID ありがとうございました 助かりましたm(_ _)m |
回答 |
|
| 回答者:yambejp | MySQLのバージョンは? バージョンによってサブクエリーはサポートされていません |
|---|---|
| 種類:補足要求 どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/25 13:22 回答番号:No.1 |
|
| この回答への補足 | 申し訳無いです。訂正です MySQL→4.0.25 phpMyAdmin→2.11.3 でした。 |
| この回答へのお礼 | 回答有難うございます 失礼しました MySQLのバージョンは2.11.3でした |