Mysql 如何选择1个月内未被访问的URL?
我有一个两列的表格。一列包含VARCHAR类型的URL,另一列包含DATE类型的日期 如何选择1个月内未访问的URL 例如,如果这是我的数据Mysql 如何选择1个月内未被访问的URL?,mysql,Mysql,我有一个两列的表格。一列包含VARCHAR类型的URL,另一列包含DATE类型的日期 如何选择1个月内未访问的URL 例如,如果这是我的数据 url date google.com 2/2/2013 yahoo.com 2/2/2013 google.com 3/2/2013 select语句应返回yahoo.com,因为该url已超过1个月未被访问过请尝试: SELECT a1.url FROM accesses AS a1 WHERE a1.url NOT IN
url date
google.com 2/2/2013
yahoo.com 2/2/2013
google.com 3/2/2013
select语句应返回yahoo.com
,因为该url已超过1个月未被访问过请尝试:
SELECT a1.url
FROM accesses AS a1
WHERE a1.url NOT IN (
SELECT a2.url
FROM accesses AS a2
WHERE a2.access >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
);
这与丹尼·贝克特的答案相反
试试:
SELECT a1.url
FROM accesses AS a1
WHERE a1.url NOT IN (
SELECT a2.url
FROM accesses AS a2
WHERE a2.access >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
);
这与丹尼·贝克特的答案相反
您能否提供具有所需结果的样本记录;你如何把这些表中的数据连接起来?这是一个表-是的,我可以举一个例子。你能给出带有所需结果的样本记录吗;t?如何连接这些表中的数据?这是一个表-是的,我可以举个例子谢谢!只需在嵌套查询的末尾添加一个
GROUP BY a2.url
,它应该是完美的。它不是相反的,它是一个完全不同的查询。我从表面上认为OP希望返回日期早于1个月的所有行。事实上,他/她想(我不知道你是怎么想出来的,因为问题中没有任何地方说明)让URL显示多次,并且其中一次更新超过1个月,不显示在结果集中。正如我所说,只有两个完全不同的查询-不是“反向”。谢谢!只需在嵌套查询的末尾添加一个GROUP BY a2.url
,它应该是完美的。它不是相反的,它是一个完全不同的查询。我从表面上认为OP希望返回日期早于1个月的所有行。事实上,他/她想(我不知道你是怎么想出来的,因为问题中没有任何地方说明)让URL显示多次,并且其中一次更新超过1个月,不显示在结果集中。正如我所说,只有两个完全不同的查询-而不是“反向”。