アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります
PHP5,MySql5.0.33にて開発を行っています

2つのテーブルの結合部分で困っています

TABLE1
----------------------------------
ID DATE1 DATE2  COUNT
----------------------------------
1  2/27  2/20  10
2  2/27  2/20  10
----------------------------------

TABLE2
----------------------------------
ID DATE1 DATE2 COUNT
----------------------------------
1  2/21  2/26  5
2  2/21  2/27  5
----------------------------------

上記2つのテーブル(TABLE1/TABLE2)から
TABLE1のDATE1=2/27より過去の行とTABLE2のDATE2=2/27より過去の行を
取得したいのですが上手くいかず…(下SQLで記述しています)

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')

(結合のそもそもの理解が間違っているかも知れませんが…;)
宜しくお願いします

A 回答 (3件)

こんな感じでどうでしょう



SELECT * FROM TABLE1
WHERE ID=1 AND DATE1<='2009/2/27'
UNION
SELECT * FROM TABLE2
WHERE ID=1 AND DATE2<='2009/2/27'
    • good
    • 0
この回答へのお礼

出来ました!
UNIONの存在を忘れていました…
大変勉強になりました
ありがとうございますm(_ _)m

お礼日時:2009/02/27 13:35

要件が曖昧だと思うのですが?



まず、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行目)が取れてくるといった感じです

補足日時:2009/02/27 13:36
    • good
    • 0

どういう結果が返ってきて欲しいのでしょうか

この回答への補足

ご回答有難う御座います
結果書かず申し訳有りません
----------------------------------
ID DATE1 DATE2  COUNT
----------------------------------
1  2/27  2/20  10 ←TABLE1より
1  2/21  2/26  5  ←TABLE2より
----------------------------------
となるように考えています
宜しくお願い致します

補足日時:2009/02/27 11:14
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!