簡體   English   中英

MySQL查詢簽入另一個表

[英]MySQL query that checks in another table

我有兩個mysql表的問題。 我已經完成了一些代碼,我想我已經接近解決方案了,但是我不確定這是否正確。

所以這是兩個表:

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天中與關鍵字之一匹配,則不包括在結果中。

到目前為止,我做到了:

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 

但是,這不能正常工作。 任何幫助將不勝感激。

試試看,您的原始規格有點令人困惑:(

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM