Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从存储的表数据生成活动的SQL查询_Mysql_Dynamic Sql_Listactivity - Fatal编程技术网

Mysql 从存储的表数据生成活动的SQL查询

Mysql 从存储的表数据生成活动的SQL查询,mysql,dynamic-sql,listactivity,Mysql,Dynamic Sql,Listactivity,我有三个用于存储活动相关数据的表,如下所示 Table: activity +----+---------------+---------+ | id | activity_text | user_id | +----+---------------+---------+ | 1 | added | 1 | | 2 | added | 1 | +----+---------------+---------+ 表:活动 +----+--

我有三个用于存储活动相关数据的表,如下所示

Table: activity +----+---------------+---------+ | id | activity_text | user_id | +----+---------------+---------+ | 1 | added | 1 | | 2 | added | 1 | +----+---------------+---------+ 表:活动 +----+---------------+---------+ |id |活动|文本|用户| id| +----+---------------+---------+ |1 |增加| 1| |2 |增加| 1| +----+---------------+---------+ 表:活动单元 +----+-------------+ |id |模块名称| +----+-------------+ |1 |员额| |2 |评论| |3 |用户| +----+-------------+ 表:活动模块对象 +----+-------------+-----------+--------------+-----------+ |id |活动|模块| id |显示|文本|对象| id| +----+-------------+-----------+--------------+-----------+ |1 | 1 | 1 |新职位| 10| |2 | 2 | 1 |新评论| 11| |3 | 2 | 2 |在岗位上| 10| +----+-------------+-----------+--------------+-----------+ 这里活动表表示用户和活动。用户id是用户表中的外键。
activity_模块中的object_id_objects表示活动目标,就像id为10的帖子一样。这意味着在10号柱上发生了一些动作

我需要这样的输出,每当我使用用户id进行查询时,让我们假设用户id=1,{user:{id:1,name:'Anil'}}

阿尼尔增加了一个新职位

阿尼尔在帖子中添加了新的评论

在每个活动中,“Anil”、“Comment”、“Post”都有链接

阿尼尔喜欢另一个用户的视频《野生动物》


在本次活动中,另一位用户Anil将与野生动物建立链接。所以,使用用户id我需要获取用户详细信息,使用模块id和对象id我需要获取对象详细信息。就像模块是“视频”一样,我需要从
videos
表中获取视频\u id(活动\u模块\u对象表中的对象\u id)数据。如果是事件之类的其他内容,我需要从
events
表中获取事件id详细信息。

如果我理解正确,它将为您提供相关对象id和模块名称的用户详细信息

SELECT u.*,
       amo.object_id,
       am.module_name
FROM USER u
LEFT JOIN activity a ON a.user_id = u.id
INNER JOIN activity_modules_object amo ON a.id = amo.activity_id
INNER JOIN activity_modules am ON am.id = amo.module_id

既然您已经描述了您的全部需求,请制定您的确切问题。请阅读,因此这不是一个免费的编码服务,您必须表明您已经做出了一些努力来解决您自己的问题。 Table: activity_module_objects +----+-------------+-----------+--------------+-----------+ | id | activity_id | module_id | display_text | object_id | +----+-------------+-----------+--------------+-----------+ | 1 | 1 | 1 | new post | 10 | | 2 | 2 | 1 | new comment | 11 | | 3 | 2 | 2 | on post | 10 | +----+-------------+-----------+--------------+-----------+
SELECT u.*,
       amo.object_id,
       am.module_name
FROM USER u
LEFT JOIN activity a ON a.user_id = u.id
INNER JOIN activity_modules_object amo ON a.id = amo.activity_id
INNER JOIN activity_modules am ON am.id = amo.module_id