公式アカウントからの投稿が始まります

こんばんは。

DB初心者なのですが、PHPとMYSQLを用いてTwitterのフォロワーを登録しているfollower表を管理しています。

で、昨日から今日にかけて増えたフォロワーのIDを出したいなと思い、以下のselect文が思いつきました。
SELECT follower.id FROM follower NOT EXISTS(SELECT 1 FROM follower WHERE follower.date=昨日) AND follower.date=今日;

ですが、これは結果が返りませんでした。
http://gyoshida.blogspot.jp/2009/11/blog-post.html
さんを見ますと、dumpしてOSコマンドで…とあります。他のサイトでは思いの丈をぶつける答えはありませんでした。

もしかして、DBの1つのselect文だけでは、同一表の差分は得られないのでしょうか?

以下がフォロワー表のdescです。
id big int,date date

以上、よろしくお願いいたします。

A 回答 (2件)

ちょっと勘違い。


こういうことですか?

※仮に今日が9/25だとして、9/25より前に存在するデータがないデータを抜き出す

create table tbl(id int,d date);
insert into tbl values(1,'2017-09-24'),(1,'2017-09-25'),(2,'2017-09-23'),(2,'2017-09-24'),(2,'2017-09-25'),(3,'2017-09-24'),(4,'2017-09-25');
select * from tbl as t1 where not exists(select 1 from tbl as t2 where d<'2017-09-25' and t1.id=t2.id)
    • good
    • 0
この回答へのお礼

すみません、チョットでかけなもので。
私もNOT EXESTSを試したのですが出来なかったのですが、その様に書けば良いんですね!勉強になりました。家に帰ったら試してみます。
ありがとうございました。

お礼日時:2017/09/26 14:47

SELECT follower.id FROM follower WHERE follower.date BETWEEN 昨日 AND 今日



的な処理じゃないですか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
すみません、上記の方法を試してみたのですが、何故だか出来ませんでした。昨日と今日のが全権取得される?
何がおかしいのでしょう・・・

お礼日時:2017/09/26 08:08

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