php - NOT EXISTS 未在结果中考虑
问题描述
我正在尝试从“评论”表中获取结果,但表中的结果除外'readsbaby'
。我得到的结果来自评论,但NOT EXISTS
声明没有效果,所以结果是所有评论。
两个表都有不应包含在结果中的公共数据。我多次检查数据和语法。这个查询仍然会返回所有评论而不考虑AND NOT EXISTS
关闭。
public function get_user_comments($post_id)
{
$user_id = $this->session->userdata('id');
$group_id = $this->session->userdata('group_id');
$sql = "SELECT *
FROM comments
WHERE DATE(created_on) > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
AND comments.group_id = " . $group_id . "
AND comments.user_id != " . $user_id . "
AND NOT EXISTS ( SELECT *
FROM readsbaby
WHERE comments.id = readsbaby.notification_id
AND comments.group_id = readsbaby.group_id
AND readsbaby.user_id = " . $this->session->userdata('id') . "
AND comments.nature1 = readsbaby.notification_type
) ";
return $data=$this->db->query($sql)->result_array();
}
期望得到NOT EXISTS
关闭过滤的结果。
解决方案
我会以这种方式更改查询,以便在表 readsbaby 中只有没有任何匹配的行:
public function get_user_comments($post_id)
{
$user_id = $this->session->userdata('id');
$group_id = $this->session->userdata('group_id');
$sql = "SELECT *
FROM comments
LEFT OUTER JOIN readsbaby ON comments.id = readsbaby.notification_id
AND comments.group_id = readsbaby.group_id
AND readsbaby.user_id = " . $this->session->userdata('id') . "
AND comments.nature1 = readsbaby.notification_type
WHERE DATE(created_on) > DATE_SUB(CURDATE(), INTERVAL 1 DAY)
AND comments.group_id = " . $group_id . "
AND comments.user_id != " . $user_id . "
AND ISNULL(readsbaby.notification_id )";
return $data=$this->db->query($sql)->result_array();
}
推荐阅读
- microsoft-graph-api - 使用 MS Graph API 是否可以只列出电子邮件附件而不下载其内容?
- ios - 是否可以撤回已批准的二进制文件并重新提交具有更新商店资产的相同二进制文件?
- sanity - 当我在 Sanity Studio 中添加或更改内容时,Sanity 预览不起作用
- java - 支持 TLS 的基于 Java 的 Telnet 代理服务器。但是为什么 java.net.SocketException: Connection denied
- ios - UITextField 的 ContentType 在 Swift 中不起作用
- python - python/flask - 修剪 json 响应和/或仅打印响应中每条记录的某些值
- c# - Apply default AuthorizationPolicy even when Authorize attribute with Roles is specified
- reactjs - Favicon 不显示在浏览器中
- header - Video embed to social media site via oembed not working correctly (twitter, slack, facebook)
- flutter - 检查 PageView 中的过度滚动 - Flutter