我对MySQL还是很陌生,所以对于有经验的人来说这可能是一个简单的问题,但是我无法弄清楚。我需要从用户发表评论的数据库中获取项目,并且其他人有更新的评论。
我的桌子上有这些柱子
app_id - id of the item
app_comment - comment blank if rate is present
app_rate - rating blank if comment is present
date - date of posting
device_id - unique id to identify each user.
我编写了简单的查询来获取用户(device_id)发布的每个评论。
temp table:
SELECT `app_id` FROM `appaction` WHERE `device_id` = '00000000-5a24-5a06-0000-00005c907706' AND `app_comment` <> ''
但是无法弄清楚下一步该怎么做。现在我以某种方式只需要从主表中获得那些其他人(不同的device_id)在每个项目上都有较新帖子的app_id
更新:数据示例:http : //www.sqlfiddle.com/#!2/ 8d986/1
注意:这只是示例,用于了解表格的外观。实际上,它内部有大约10000个值。
例如:我将device_id分发给php脚本,在输出中,我希望所有app_id都位于用户已张贴自己并在他之后有新注释的位置。
输入示例: http : //www.sqlfiddle.com/#!2/66258/1
所需的输出用于输入ffffffff-c565-9b4a-ffff-ffffc9d821fd
img /本田/AccordPICS/4167946157_a5b77093bc_b.jpg
因为其他人为此app_id发布了新帖子。
如果我正确理解,则app_id是指向另一个表的链接,而不是appaction的ID。在这种情况下,您可以执行以下操作:
SELECT ua.id AS user_item_id, oa.id AS other_item_id FROM appaction ua
INNER JOIN appaction oa ON (ua.app_id = oa.app_id AND oa.app_comment <> '' AND oa.date > ua.date)
WHERE
ua.device_id = '00000000-5a24-5a06-0000-00005c907706'
AND oa.device_id != '00000000-5a24-5a06-0000-00005c907706'
AND ua.app_comment <> ''
这将获取设备的项目,该设备的项目在项目之后张贴了与同一app_id相同的项目。other_item_id
是后续操作的ID。
编辑:要获取输出,您只需将以上查询更改为:
SELECT DISTINCT(ua.app_id) FROM appaction ua
INNER JOIN appaction oa ON (ua.app_id = oa.app_id AND oa.app_comment <> '' AND oa.date > ua.date)
WHERE
ua.device_id = 'ffffffff-c565-9b4a-ffff-ffffc9d821fd'
AND ua.app_comment <> ''
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句