【问题标题】:Left join on two tables and want to get results from a specific date在两个表上左连接并希望从特定日期获取结果
【发布时间】:2021-03-27 20:15:16
【问题描述】:

我已经编写了一个 MySQL 查询来对两个表进行左连接。

我的结果查询显示我想要的结果。我只是想知道如何进一步使其仅限于特定日期。

我要排序的列是 user_registered,并以这种格式显示日期 2020-12-17 06:06:05。那么如何从两个不同的日期制作它。这是我写下的查询。

SELECT wp_users.user_email,user_nicename,user_registered,freelancerpaid
FROM wp_users
LEFT JOIN wp_posts
ON wp_users.ID = wp_posts.post_author
WHERE wp_posts.post_type="freelancers"
AND wp_users.freelancerpaid="1"

These are the results i am getting from the query 所以我想要的是从我可以输入的特定日期获得结果。

提前致谢。

【问题讨论】:

  • 您可以在 where 子句 WHERE user_registered LIKE '%2020-12-17%' 中使用 like 表示特定日期
  • 但是 Akshay 它只会给我那个特定的日期,比如如何使它像任何小于它或大于它的日期。
  • WHERE DATE(user_registered) <= '2020-12-17' for less or equal 或使用>= for greater or equal
  • 为什么“左”加入?

标签: php mysql sql database wordpress


【解决方案1】:

停止,您的查询没有达到您想要的效果。

它不是在做Left join,而是在做inner join

如果你真的想要left join,那么左连接表的条件必须在ON 子句中,wp_users 上的条件可以在where 子句中,如下所示:

SELECT wp_users.user_email,user_nicename,user_registered,freelancerpaid
  FROM wp_users
  LEFT JOIN wp_posts ON wp_users.ID = wp_posts.post_author
                    And wp_posts.post_type="freelancers" -- this is moved to ON clause
 Where wp_users.freelancerpaid="1"
   And DATE(wp_users.user_registered) BETWEEN '2020-11-28' AND '2020-11-29'

【讨论】:

    【解决方案2】:

    如果您需要在两个日期之间,请使用它。

    SELECT wp_users.user_email,user_nicename,user_registered,freelancerpaid
    FROM wp_users
    LEFT JOIN wp_posts
    ON wp_users.ID = wp_posts.post_author
    WHERE wp_posts.post_type="freelancers"
    AND wp_users.freelancerpaid="1"
    AND DATE(user_registered) BETWEEN '2020-11-28' AND '2020-11-29'
    

    但如果您需要小于或大于日期,请使用它。只需根据您的需要更改条件即可。

    SELECT wp_users.user_email,user_nicename,user_registered,freelancerpaid
    FROM wp_users
    LEFT JOIN wp_posts
    ON wp_users.ID = wp_posts.post_author
    WHERE wp_posts.post_type="freelancers"
    AND wp_users.freelancerpaid="1"
    AND DATE(user_registered) >= '2020-11-29'
    

    【讨论】:

    • 这是一个 INNER JOIN,如执行 EXPLAIN EXTENDED [your query] 后跟 SHOW WARNINGS 所示
    • 另外,请注意函数不能使用索引(如果提供了索引)
    • @SyedFaseehUlHassan 如果答案解决了您的问题,如何将 Pauls 的答案标记为解决方案并给他积分?
    猜你喜欢
    • 2021-09-08
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 2017-02-05
    相关资源
    最近更新 更多