Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 连接表时显示多个值_Mysql - Fatal编程技术网

Mysql 连接表时显示多个值

Mysql 连接表时显示多个值,mysql,Mysql,您好,我正在尝试以下查询 我有四个表post_messages post_message_用户、link_详细信息、标签 post_消息与链接_详细信息、标记具有1:N关系 桌子 我正在编写以下查询以从所有表中获取相关数据。 但问题是,它多次显示出相同的价值 SELECT p_m.*, p_m_u.*, GROUP_CONCAT( tags.tag SEPARATOR ';')

您好,我正在尝试以下查询 我有四个表post_messages post_message_用户、link_详细信息、标签 post_消息与链接_详细信息、标记具有1:N关系 桌子 我正在编写以下查询以从所有表中获取相关数据。 但问题是,它多次显示出相同的价值

           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' ....