【发布时间】:2019-08-02 01:14:41
【问题描述】:
我想从下表中获取数据,这样我就不必调用多个查询并设置响应属性isLikedByUser。 userId 我正在发送请求。
帖子 -- 表名
用户身份,
邮政编码,
文本,
喜欢计数,
cmetsCount
LikeMapping -- 表名
用户身份,
邮编
现在我根据 userId 编写查询并从第一个表中获取数据。然后在表 2 中从请求找到的行中对每一行和每个 postId 和 userId 进行迭代,如果找到数据,我设置 isLikedByUser 的属性.
如何编写查询来帮助我填充属性值而无需在循环中编写查询。
谢谢
为了澄清更多 isLikedByUser 只是响应属性,没有任何表中的列,如果在第二个表中找到映射,则希望将其设置为 true 或 false。
【问题讨论】:
-
我可能弄错了,但听起来你可以执行 INNER JOIN。 Select * from Posts p INNER JOIN LikeMapping lm ON p.postId = lm.postId WHERE lm.userId = userIdFromRequest w3schools.com/sql/sql_join_inner.asp
-
你能分享一些示例数据和你想要达到的结果吗?
-
不,Derek,加入我所要求的并不简单。如果映射表中可用,我想根据数据设置响应属性值之一。 (第二)。我通过迭代从第一个表中找到的数据来实现它,但我想在一个查询中完成。
-
例如。我用 userId 100 调用了 RestAPI,并在 Posts 表中查询了用户 100 给出的帖子。帖子 1、100、xxx、yyy、zzz 2、102、aaa、bbb、ccc 3、101、sss、fff、ggg 4、 100, uuu, nnn, mmm 第一个查询只有两行,因为用户只做了两个帖子 (1,4) LikeMapping 1,105 2,103 3,106 4,100 如果映射表中有数据,现在对于用户完成的每个 postId (1,4) postId=1 和 userId =100 设置响应属性 isLikedByUser = true。那就是我想弄清楚用户是否喜欢他自己的帖子,因为帖子喜欢保存在映射表中。
-
如果您认为您刚刚输入的信息与您的问题相关,那么edit 问题而不是将其发布为 cmets
标签: java mysql sql performance optimization