- ベストアンサー
2つのテーブルの結合で困っています
- PHP5,MySql5.0.33にて開発を行っています。2つのテーブルの結合部分で問題が発生しています。
- 上記2つのテーブル(TABLE1/TABLE2)から、TABLE1のDATE1=2/27より過去の行とTABLE2のDATE2=2/27より過去の行を取得したいのですが上手くいきません。
- SELECT DISTINCT TABLE1.* FROM TABLE1,TABLE2 WHERE TABLE1.ID=TABLE2.ID AND TABLE1.ID=1 AND (TABLE1.DATE1<='2009/2/27' OR TABLE2.DATE2<='2009/2/27')
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょう SELECT * FROM TABLE1 WHERE ID=1 AND DATE1<='2009/2/27' UNION SELECT * FROM TABLE2 WHERE ID=1 AND DATE2<='2009/2/27'
その他の回答 (2)
- chukenkenkou
- ベストアンサー率43% (833/1926)
要件が曖昧だと思うのですが? まず、DATE1、DATE2は月日しか示されていませんが、date型なのですか? 「2/27より過去」というのは、「2/27」を含むのですか?含まないのですか? 提示されたSQLでは「2/27」を含むようですが、得たい結果を見ると、TABLE1は「2/27」を含み、TABLE2は「2/27」を含まないという矛盾した内容に見えるのですが?
補足
ご回答有難う御座います 記述不足で申し訳有りません DATE1/DATE2はdate型です 「2/27より過去」というのは、「2/27」を含みます (「2/27以下」と書いた方が良かったですね。すいません…) 得たい情報はID=1の2/27以下なので TABLE2では2/26のデータ(1行目)が取れてくるといった感じです
- t_ohta
- ベストアンサー率38% (5238/13705)
どういう結果が返ってきて欲しいのでしょうか
補足
ご回答有難う御座います 結果書かず申し訳有りません ---------------------------------- ID DATE1 DATE2 COUNT ---------------------------------- 1 2/27 2/20 10 ←TABLE1より 1 2/21 2/26 5 ←TABLE2より ---------------------------------- となるように考えています 宜しくお願い致します
お礼
出来ました! UNIONの存在を忘れていました… 大変勉強になりました ありがとうございますm(_ _)m