有人能告诉我查询有什么问题吗?它没有遵循日期条件。它返回所有数据,我希望数据少于上述日期。
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
答案 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 Conditions和Should I use field 'datetime' or 'timestamp'?