[英]SQL Join two tables with an excluding condition?
我有一个要解决的SQL问题。 下面是问题:
给定以下两个表,编写一个SQL查询,该查询将返回前10000个得分(不包括最近30天内发生任何what = 3事件的uuid)。
TABLE scores (
uuid INT,
score FLOAT
)
TABLE events (
when date,
uuid INT,
what INT
)
我试图通过将问题分为两个语句然后将其合并来解决此问题,
对于语句:返回最高10000分的SQL查询,我得到了,
SELECT TOP 10000 score FROM scores;
对于语句:最近30天内发生任何what = 3事件的uuid。
SELECT uuid FROM events WHERE what=3 AND when>2/14/2015;
通过基于排除条件将两个语句连接起来,我得到了,
SELECT TOP 10000 score
WHERE what!=3 AND when>2/14/2015
FROM scores
INNER JOIN events
ON score.uuid=events.uuid;
但是我不确定这是否正确,而且我感觉这里缺少某些东西,例如“除外”的特定语法,也不确定是否以正确的方式执行了Join操作。 任何帮助,将不胜感激。
尝试这个
select top 10000 score
from scores
where not exists(
select 1
from events
where scores.uuid = events.uuid
and events.when > 20150214
and what=3
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.