首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >签入另一个表的MySQL查询

签入另一个表的MySQL查询
EN

Stack Overflow用户
提问于 2013-05-31 01:06:33
回答 1查看 83关注 0票数 0

我有两个mysql表的问题。我已经做了一些代码,我想我已经接近解决方案了,但我不确定这是否正确。

下面是两个表:

代码语言:javascript
复制
Table 1: Blogs
Columns: ID, agp_name, agp_url, agp_username, agp_password

Table 2: Keywords
Columns: ID, agp_user_id, agp_order_id, agp_blog_id, agp_keywords, agp_keywords_date

我想要的是根据以下条件从Table1中随机获得一行:如果agp_keyword在过去5天内匹配其中一个关键字,则不要将其包括在结果中。

到目前为止,我这样做了:

代码语言:javascript
复制
SELECT 
t1.agp_user_id, t1.agp_order_id, t1.agp_blog_id, t1.agp_keywords, t1.agp_keywords_date, t2.agp_name, t2.agp_url, t2.agp_username, t2.agp_password
FROM table1 AS t1 
INNER JOIN ( 
  SELECT ID, agp_name, agp_url, agp_username, agp_password, agp_blogposts 
  FROM table2 
) AS t2 ON t1.agp_blog_id = t2.ID 
WHERE
  t1.agp_keywords NOT LIKE "%keyword1%" AND 
  t1.agp_keywords NOT LIKE "%keyword2%" AND 
  t1.agp_keywords_date BETWEEN (1369440000 AND 1369932432) 
ORDER BY RAND() LIMIT 1 

然而,这并不能正常工作。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2013-05-31 01:16:05

试试这个,你的原始规范有点混乱:(

代码语言:javascript
复制
SELECT keywords.agp_user_id, 
       keywords.agp_order_id, 
       keywords.agp_blog_id, 
       keywords.agp_keywords, 
       keywords.agp_keywords_date, 
       blogs.agp_name, 
       blogs.agp_url, 
       blogs.agp_username, 
       blogs.agp_password
FROM blogs 
LEFT JOIN keywords
    ON keywords.agp_blog_id = blogs.ID 
        AND keywords.agp_keywords NOT LIKE "%keyword1%" 
        AND keywords.agp_keywords NOT LIKE "%keyword2%" 
        AND FROM_UNIXTIME(keywords.agp_keywords_date) > (DATE_SUB(CURDATE(), INTERVAL 5 DAYS))
ORDER BY RAND() LIMIT 1 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16842072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档