查询-消息表 如何获取消息表和消息状态

问题描述

消息表 如何获取消息表和消息状态
消息表 MSG-INFO IDTITLEISALL(是否发送给全部)
消息关联表 MSG-USER IDMSGIDUSERIDISREAD
消息可以发送给全部用户和指定用户,发送给指定用户时,添加数据到消息关联表,
发送给全部用户时,不添加。在用户阅读后添加。

请问如何查询到指定用户的所有消息记录以及阅读状态。
用户还需要查询消息状态。
查询消息阅读状态的时候,因为发送给全部。无法查询到消息阅读记录。

解决方案

Http状态消息
HTTP 状态消息
HTTP 状态消息

解决方案二:
你这里还需要一个用户表吧我写了一个示范:

 WITH msg(MSGIDTITLEISALL) AS (    SELECT 1'msg1 for all'1 UNION    SELECT 2'msg2 for user1'0 UNION    SELECT 3'msg3 for user2'0 UNION    SELECT 4'msg4 for all'1 )msg_user(idMSGIDUSERIDISREAD) AS(    SELECT 1111 UNION    SELECT 2210 UNION    SELECT 3120 UNION    SELECT 4320 )users(useridusername) AS (    SELECT 1'AAAAA' UNION    SELECT 2'BBBBB' UNION    SELECT 3'CCCCC')SELECT * FROM (    SELECT * FROM msg AS m  users AS u) t LEFT JOIN msg_user AS mu ON mu.msgid= t.msgid  AND mu.userid=t.userid WHERE isnull(mu.userid0)=CASE WHEN t.isall=0 THEN t.userid ELSE isnull(mu.userid0) ENDORDER BY t.MSGID

解决方案三:
对应isall=1 的会把所有用户关联出来,然后再根据msg_user表查看阅读状态,如果这个对没有对应记录就是未读(isread is null)
如果isall=0,那么仅关联msg_user中对应的用户

时间: 2024-11-04 17:44:47

查询-消息表 如何获取消息表和消息状态的相关文章

sqlite-从列值为空的表中获取数据

问题描述 从列值为空的表中获取数据 表: CREATE TABLE Reports ( _id INTEGER NOT NULL PRIMARY KEY,member_id INTEGER, is_conf BOOLEAN, name TEXT, started INTEGER, finished INTEGER, description TEXT, obj_id INTEGER NOT NULL, FOREIGN KEY (obj_id) REFERENCES Objects (_id));

Mycat(4):消息表mysql数据库分表实践

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46882777 未经博主允许不得转载. 1,业务需求 比如一个社交软件,比如像腾讯的qq.可以进行群聊天(gid),也可以单人聊天. 这里面使用到了数据库中间件mycat,和mysql数据表分区. 关于mycat分区参考: [ 数据库垂直拆分,水平拆分利器,cobar升级版mycat] http://blog.csdn.net/freewebsys/article/details

c# 数据库表连接查询-C#代码中查询数据库查询两个连接起来的表怎么获取数据并把数据放到DataSet中?

问题描述 C#代码中查询数据库查询两个连接起来的表怎么获取数据并把数据放到DataSet中? 以下是获取所有信息的代码函数: public static DataSet GetAllInfos() { string sql = "select InfoID,InfoTitle,InfoTime,InfoContent,i.AccountID,a.AccountName from Info as i inner join Account as a on i.AccountID = a.Accoun

获取MYSQL表信息

    6.8 其他主题    本节包括几个主题,这些主题不完全适合于本章从client1到client5 的开发中的任一小节的内容:    ■ 在使用结果集元数据帮助验证这些数据适合于计算之后,使用结果集数据计算结果.    ■ 如何处理很难插入到查询中的数据.    ■ 如何处理图形数据.    ■ 如何获得表结构的信息.    ■ 常见的MySQL程序设计错误及如何避免.    6.8.1在结果集上执行计算    迄今为止,我们集中而主要地使用了结果集元数据来打印行数据,但很明显,除打印之

【sql查询与优化】1.单表查询

注:以下所有sql案例均取自"oracle查询优化改写技巧与案例"丛书. EMP表的详细: 1.查询表中所有的行与列 查询所有信息, SQL> select * from emp;      EMPNO ENAME                JOB                       MGR HIREDATE       SAL        COMM       DEPTNO ---------- -------------------- -------------

contentprovider-从“canonical_addresses”表中获取地址

问题描述 从"canonical_addresses"表中获取地址 在android程序中,我从下面的 uri 中获取 recipient_id . content://mms-sms/conversations?simple=true 现在我想使用 recipient id 从"canonical_addresses"表中获取地址.但是如何查询"canonical_addresses"表呢? 解决方案 Canonical 表中有两列,_id 和

T-SQL查询进阶:详解公用表表达式(CTE)

简介 对于SELECT查询语句来说,通常情况下,为了使T-SQL代码更加简洁和可读,在一个查询中引用另外的结果集都是通过视图而不是子查询来进行分解的.但是,视图是作为系统对象存在数据库中,那对于结果集仅仅需要在存储过程或是用户自定义函数中使用一次的时候,使用视图就显得有些奢侈了. 公用表表达式(Common Table Expression)是SQL SERVER 2005版本之后引入的一个特性.CTE可以看作是一个临时的结果集,可以在接下来的一个SELECT,INSERT,UPDATE,DEL

java-easyui和普通表单提交 我想提交普通表单 获取某个字段

问题描述 easyui和普通表单提交 我想提交普通表单 获取某个字段 获取某个字段进行查询 问题就在我获取不了普通表单数据 我想按一个按钮 就根据普通表单查出数据 解决方案 直接在form表单的action="url?value=data":要得是酱紫的吗? 解决方案二: 你可以把所有的查询条件封装成功一个对象 传到 Controller 解决方案三: 你可以把所有的查询条件封装成功一个对象 传到 Controller

Sql Server 获取指定表、视图结构

1.获取指定表.视图的所有字段属性 只要输入不同的表/视图名,就可以获取该表的所有字段名字.字段长度.字段类型.字段说明.字段是否允许为空.是否主键.是否自增长字段等. USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[A_P_GetColumnStructureInfo] Script Date: 11/19/2015 16:11:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER