2015-06-16 14 views
0

我正在使用mysql併爲官員和映射表之間的映射表提供三個表格。 我將如何查詢,以便發生下述情況:每個事件 Mysql多對多映射表返回一行並連接可能導致重複行的值

  • 串聯的多個值官員到相應的單個事件排

    • 一個單行。

    表的結構是這樣:

    **Official** 
    ------------- 
    id name 
    ------------- 
    1  ali 
    2  ahmed 
    3  john 
    4  king 
    6  kyle 
    
    **Event** 
    ------------- 
    id name 
    ------------- 
    1  event 1 
    2  event 2 
    3  event 3 
    
    **Mapping** 
    ------------- 
    id oid eid 
    ------------- 
    1  1  1 
    2  3  1 
    3  6  2 
    4  1  3 
    5  4  3 
    6  5  3 
    7  6  3 
    
  • 回答

    1

    您可以使用INNER JOINGROUP_CONCAT,見下面例子: -

    SELECT 
    E.id, E.name, GROUP_CONCAT(O.name) OfficialName 
    FROM Mapping M 
    INNER JOIN Event E 
        ON M.eid = E.id 
    INNER JOIN Official O 
        ON M.oid = O.id 
    GROUP BY E.id 
    
    +0

    出色的工作。像魅力一樣工作。 – Mrd05d