我只是坚持从我的数据库中选择数据,这是我的一些数据。
Table (Monster_card)
mons_card_id | Level
1 1
2 1
3 1
4 1
Table (Monster_registration)
mons_reg_id |mons_card_id | status | time(timestamp)
1 1 "REGISTER" "2012-07-09 12:00:00"
2 1 "UNREGISTER" "2012-11-01 12:49:01"
3 2 "REGISTER" "2012-11-03 12:49:01"
4 3 "REGISTER" "2012-11-04 12:49:01"
我当前的查询是=
select a.mons_card_id from monster_card a, monster_registration b
where b.status = "REGISTER"
我想要的结果=通过上面的数据,结果应该只有mons_card_id 2& 3。 但在我目前的结果中,mons_card 1也出现了。
对不起之前的帖子感到抱歉。任何建议?
答案 0 :(得分:0)
您可以使用NOT EXISTS
确保给定的mons_card_id没有“REGISTER”状态以外的最新记录
SELECT mons_card_id
FROM monster_registration M
WHERE M.status = 'REGISTER' AND NOT EXISTS (
SELECT 1 FROM monster_registration R
WHERE R.mons_card_id = M.mons_card_id
AND R.time > M.time
AND R.status <> 'REGISTER'
)