加入同一个表来获取信息

时间:2013-09-27 18:14:34

标签: 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

(即这对夫妇只应选择一次)

2 个答案:

答案 0 :(得分:0)

假设你有一个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

答案 1 :(得分:0)

这样做的方法

    SELECT `Name`, `Spouse`
    FROM Table1
    WHERE `Name` <= `Spouse`

demo