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彼此都有配偶关系,您需要另一个字段来指示主要联系人。