MYSQL在哪里有日期时间字段

时间:2016-06-27 11:21:47

标签: mysql

有人能告诉我查询有什么问题吗?它没有遵循日期条件。它返回所有数据,我希望数据少于上述日期。

SELECT `messages`.*, `user`.`firstname`, `user`.`lastname`, `user`.`organisation_name`, `user`.`type`, `user_info`.`profile_picture`, `user_info`.`logo`, `user`.`email`
FROM (`messages`) JOIN
     `user`
     ON `user`.`user_id` = `messages`.`from_id` JOIN
     `user_info`
     ON `user_info`.`uid` = `messages`.`from_id`
WHERE `messages`.`from_id` = '4' AND
      `messages`.`to_id` = '24572' AND 
      `messages`.`time_sent` <= '2016-06-23 12:41:47' OR
      `messages`.`from_id` = '24572' AND
      `messages`.`to_id` = '4' AND 
     `messages`.`time_sent` <= '2016-06-23 12:41:47'
ORDER BY `msg_id` DESC

4 个答案:

答案 0 :(得分:2)

我猜您可以将用户的所有邮件作为发件人或收件人获取。你能在下面试试吗?

SELECT
    `messages`.*, `user`.`firstname`,
    `user`.`lastname`,
    `user`.`organisation_name`,
    `user`.`type`,
    `user_info`.`profile_picture`,
    `user_info`.`logo`,
    `user`.`email`
FROM
    `messages`
JOIN `user` ON `user`.`user_id` = `messages`.`from_id`
JOIN `user_info` ON `user_info`.`uid` = `messages`.`from_id`
WHERE
    (
        `messages`.`from_id` = '4'
        AND `messages`.`to_id` = '24572'
        AND `messages`.`time_sent` <= '2016-06-23 12:41:47'
    )
OR (
    `messages`.`from_id` = '24572'
    AND `messages`.`to_id` = '4'
    AND `messages`.`time_sent` <= '2016-06-23 12:41:47'
)
ORDER BY
    `messages`.`id` DESC

答案 1 :(得分:0)

尝试删除括号&#34;(&#34;和&#34;)&#34;:

SELECT `messages`.*, `user`.`firstname`, `user`.`lastname`, `user`.`organisation_name`, `user`.`type`, `user_info`.`profile_picture`, `user_info`.`logo`, `user`.`email`
FROM `messages` JOIN
     `user`
     ON `user`.`user_id` = `messages`.`from_id` JOIN
     `user_info`
     ON `user_info`.`uid` = `messages`.`from_id`
WHERE `messages`.`from_id` = '4' AND
      `messages`.`to_id` = '24572' AND 
      `messages`.`time_sent` <= '2016-06-23 12:41:47' OR
      `messages`.`from_id` = '24572' AND
      `messages`.`to_id` = '4' AND 
     `messages`.`time_sent` <= '2016-06-23 12:41:47'
ORDER BY `msg_id` DES

如果您分享错误消息并且还要关注您的&#39; AND&#39;和&#39;或者&#39;条件,因为他们没有括号,因此优先级将与您可能期望的不同。

答案 2 :(得分:0)

请试试这个..

node = new SPNavigationNode(resourceFile, url, true);

答案 3 :(得分:0)

  

使用AND括号OR()进行分类并确保表格字段类型

SELECT messages.*, user.firstname, user.lastname, user.organisation_name, user.type, user_info.profile_picture, user_info.logo, user.email 
FROM messages 
JOIN user ON user.user_id = messages.from_id 
JOIN user_info ON user_info.uid = messages.from_id 
WHERE (messages.from_id = '4' AND messages.to_id = '24572' AND messages.time_sent <= '2016-06-23 12:41:47')
    OR (messages.from_id = '24572' AND messages.to_id = '4' AND messages.time_sent <= '2016-06-23 12:41:47')
ORDER BY msg_id DESC

阅读MySQL: Combining the AND and OR ConditionsShould I use field 'datetime' or 'timestamp'?

示例 enter image description here