1

私は3つのフィールドを持っています

PId Name Address 
1    aaaa   1234
2    bbbb   4567
3    cccc   1234
4    dddd   4567

私のクエリは

SELECT DISTINCT s.Name,ss.Name From Students s INNER JOIN Students ss ON s.PId!=ss.PId WHERE s.Address = ss.Address GROUP BY s.Name,ss.Name

住所が同じ人の名前を取得したいのですが、このようになっています

aaaa cccc
bbbb dddd
cccc aaaa
dddd bbbb

そして、私は欲しい

aaaa cccc
bbbb dddd 

それだけ

4

2 に答える 2

2

これは機能しますか:

SELECT
    s.Name,
    ss.Name
FROM
    Students s
INNER JOIN
    Students ss ON s.PId != ss.PId
WHERE
    s.Address = ss.Address
AND
    s.Name < ss.Name
GROUP BY
    s.Name,
    ss.Name

?

名前が行に固有である場合は、次のようにも記述できます。

SELECT
    s.Name,
    ss.Name
FROM
    Students s
INNER JOIN
    Students ss ON s.PId != ss.PId
WHERE
    s.Address = ss.Address
AND
    s.Name < ss.Name
于 2013-06-25T04:21:04.750 に答える
2

短い

   SELECT
   s.Name,
  ss.Name
FROM
    Students s
INNER JOIN
    Students ss ON  s.Address = ss.Address 
    and s.PId != ss.PId 
where s.name<ss.name

また

SELECT
   s.Name  ,
  ss.Name
FROM
    Students s
INNER JOIN
    Students ss ON  s.Address = ss.Address 
    and s.PId != ss.PId 
    and s.name<ss.name

group by は不要です

于 2013-06-25T06:53:25.230 に答える