我想从1个Mysql query
中的3/4个表中获取以下数据,想知道是否有可能?这些表是Mysql左连接多个1到多个表
TOPIC
topicid (FK)(PK)
groupid
topic
user
LIKED
likeid
topicid (FK)
user
COMMENT
commentid (PK)
topicid (FK)
comment
user
我写我的主题,并存储在具有唯一topicid的主题表。我使用groupid将每个主题分组。 其他表格每个topicid可能有0个或更多的数据。
我正在尝试获取特定组的每个主题,并从相关表中获取其他数据。我检查了How to left join multiple one to many tables in 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
我缺少
我很困惑。您正在通过'topicid'加入和分组。然后你抱怨多个主题在一个组中时没有获得多个值。你想按groupid排序吗? –
您可以使用示例数据构建一个sqlfiddle,并显示期望的结果应该是什么? – Barmar
@Barmar我在[link](http://sqlfiddle.com/#!2/9ab57/1/0)上试过sqlfiddle。 –