2014-01-13 95 views
0

你好我想下面的查詢 我有四個表post_messagespost_message_userslink_detailstags post_messages具有1:N的關係附帶link_detailstags 表 我寫下面的查詢獲取相關來自所有表格的數據。 但問題是它多次顯示相同的值。顯示多個值,同時連接表

  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 

如何解決此問題。

回答

0

嘗試在GROUP_CONCAT條款

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

使用DISTINCT但是,當我有喜歡AA制兩個相同的標籤; XX; AA; XX它顯示只有兩個。但是'tags'表中有4個條目。如何顯示全部四個而不重複。 –

+0

@manishSahu實際上有兩個標籤不是四個aa重複兩次xx也重複兩次所以實際上有兩個標籤不是四個右邊 –