Mysql 连接同一个表以获取信息

Mysql 连接同一个表以获取信息,mysql,join,Mysql,Join,我有一张像这样的桌子 Name Spouse --------------- John Smitha Bob Neetha Neetha Bob Mona Jack Smitha John Jack Mona 我希望在MySQL中使用连接得到如下结果 Name Spouse --------------- John Smitha Bob Neetha Mona Jack (即,夫妇只应选择一

我有一张像这样的桌子

Name     Spouse
---------------

John     Smitha

Bob      Neetha

Neetha   Bob

Mona     Jack

Smitha   John

Jack     Mona
我希望在MySQL中使用连接得到如下结果

Name     Spouse
---------------

John     Smitha

Bob      Neetha

Mona     Jack

(即,夫妇只应选择一次)

假设您有一个IsPrimary字段

您可以通过以下查询轻松实现这一点

SELECT P.NAME, S.NAME As SpouseName
FROM PEOPLE P
LEFT JOIN PEOPLE S ON P.Spouse = S.Spouse -- You should have a PK/FK relasionship here (SouseId) and not join on a name string
WHERE P.IsPrimary = 1

这样做的方法

    SELECT `Name`, `Spouse`
    FROM Table1
    WHERE `Name` <= `Spouse`
选择“姓名”、“配偶”`
来自表1

其中,`Name`没有给出确切的查询,google“sql alias self-join”数据设置的方式John和Smitha彼此都有配偶关系,您需要另一个字段来指示主要联系人。