ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者: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でした
 
最新から表示回答順に表示良回答のみ表示