Mysql 连接表时显示多个值
您好,我正在尝试以下查询 我有四个表post_messages post_message_用户、link_详细信息、标签 post_消息与链接_详细信息、标记具有1:N关系 桌子 我正在编写以下查询以从所有表中获取相关数据。 但问题是,它多次显示出相同的价值Mysql 连接表时显示多个值,mysql,Mysql,您好,我正在尝试以下查询 我有四个表post_messages post_message_用户、link_详细信息、标签 post_消息与链接_详细信息、标记具有1:N关系 桌子 我正在编写以下查询以从所有表中获取相关数据。 但问题是,它多次显示出相同的价值 SELECT p_m.*, p_m_u.*, GROUP_CONCAT( tags.tag SEPARATOR ';')
SELECT
p_m.*,
p_m_u.*,
GROUP_CONCAT( tags.tag SEPARATOR ';')
AS 'MESSAGE_TAGS',
GROUP_CONCAT( linkdtl.link_id SEPARATOR ';')
AS `LINK_ID`,
GROUP_CONCAT( linkdtl.link SEPARATOR ';')
AS 'LINK',
GROUP_CONCAT( linkdtl.link_title SEPARATOR ';')
AS 'LINK_TITLE'
FROM post_message_users AS p_m_u
LEFT JOIN post_messages AS p_m
ON p_m.messageid = p_m_u.messageid
LEFT JOIN tags
ON p_m.messageid=tags.message_id
LEFT JOIN link_details AS linkdtl
ON p_m_u.messageid=linkdtl.message_id
GROUP BY p_m_u.messageid,p_m_u.received_by,tags.message_id
ORDER BY p_m_u.adddate DESC
如何解决此问题。尝试在组中使用DISTINCT\u CONCAT子句
但是当我有两个相同的标签,比如aa;xx;aa;它只显示了两个。但标签表中有4个条目。如何在不重复的情况下显示所有四个。@manishSahu实际上有两个标记不是四个aa重复两次xx也重复两次,所以实际上有两个标记不是四个对吗
GROUP_CONCAT( DISTINCT tags.tag SEPARATOR ';')
SELECT
p_m.*,
p_m_u.*,
GROUP_CONCAT(DISTINCT tags.tag SEPARATOR ';') AS 'MESSAGE_TAGS',
GROUP_CONCAT(DISTINCT linkdtl.link_id SEPARATOR ';') AS `LINK_ID`,
GROUP_CONCAT(DISTINCT linkdtl.link SEPARATOR ';') AS 'LINK',
GROUP_CONCAT(DISTINCT linkdtl.link_title SEPARATOR ';') AS 'LINK_TITLE' ....