我正在尝试从 1 中的 3/4 表中获取以下数据Mysql query
,想知道是否可能?这些表是
TOPIC
topicid (FK)(PK)
groupid
topic
user
LIKED
likeid
topicid (FK)
user
COMMENT
commentid (PK)
topicid (FK)
comment
user
我用唯一的 topicid 编写我的主题并存储在 TOPIC 表中。我使用 groupid 对每个主题进行分组。其他表的每个 topicid 可能有 0 个或更多数据。
我正在尝试获取特定组的每个主题,并从相关表中获取其他数据。我检查了如何在mysql中左连接多个一对多表?并没有什么想法,但这是为了计数,而我想从该表(喜欢的用户)和(用户及其评论)中获取详细信息。
我努力了
SELECT t.topicid,
topic,
group_concat(DISTINCT likeid,l.user SEPARATOR '|'),
group_concat(DISTINCT commentid,comment,c.user SEPARATOR '|') AS comments
FROM TOPIC t
LEFT JOIN LIKE l ON l.topicid = t.topicid
LEFT JOIN COMMENT c ON c.topicid = t.topicid
WHERE t.groupid='some_value'
GROUP BY t.topicid
虽然这部分有效,例如我确实获得了详细信息,但前提是组中有一个主题。如果一个组中有 2 个或更多主题,则concat
详细信息仅存储在第一条记录中,后面的主题不显示点赞和评论。
有人可以帮我纠正这个或Mysql function
我遗漏的任何具体问题吗