【发布时间】:2020-10-20 13:21:01
【问题描述】:
我们正在尝试从表 1、表 2 中获取结果,并获取表 3,4 中每个结果 id 的列数。
下面是我们的表格:
Table1 - Posts
----------------------------------
id | date | Tilte | AuthorID|
----------------------------------
321 | 2016-01 | test1 | 23234 |
423 | 2016-01 | test2 | 56752 |
324 | 2016-01 | test3 | 32433 |
546 | 2015-12 | test4 | 45354 |
Table2 - eg. Author Details (Get author's Name based on Table1.AuthorID)
---------------
id | Name |
------|-------|
23234 | test1 |
56752 | test2 |
32433 | test3 |
45354 | test4 |
Table3 - eg. likes (COUNT if logged in user likes this post based on post ID (Table1.id and userID = loggedinUserid))
-----------------------------
id | post_id | userID |
------| ------- |-----------|
32131 | 321 | 23234 |
42324 | 423 |. 56752 |
32423 | 324 | 32433 |
54623 | 546 | 45354 |
Table4 - eg. favorites (COUNT if user favorited this post based on post ID (Table1.id and userID = loggedinUserid))
--------------------------
id | post_id | userID |
------| --------|--------|
32133 | 321 | 23234 |
42334 | 423 | 56752 |
32423 | 324 | 32433 |
54687 | 546 | 45354 |
我已尝试使用 UNION 和 JOIN,但我只得到收藏/喜欢表中存在的结果。我需要来自帖子 Table1 的 6 个结果(限制 6 个),并检查用户是否喜欢/收藏了每个结果。
预期的 JSON 输出:
{
posts: [{
"postID": 321,
"postDate": "20/10/2020",
"postTitle": "Test",
"author": "Jack",
"userLiked": "yes",
"userFavorited": "no",
},
.....
]
}
【问题讨论】:
-
向我们展示预期的输出,为什么是 6?您想要包含作者、喜欢和收藏计数的帖子列表吗?
-
@JitendraYadav 这是包含这些详细信息的帖子列表
-
@JitendraYadav 我用预期的输出编辑了我的问题
-
为此使用
LEFT JOIN -
@Slava Rozhnev 你能根据这些表创建 sql 吗?我使用了左连接,但它只返回表收藏夹或喜欢中存在的结果,而不是所有帖子
标签: mysql