0

所有者IDがプロパティに複数回表示されているときに所有者から所有者ID、FName、LNameを取得しようとしています。これは私が試したものですが、SQLはかなり新しいので、これが近いかどうかはわかりません。

Select OwnerID, FName, LName 
From Owner 
Where OwnerID = (Select OwnerID 
                 From Property 
                 GROUP BY OwnerID 
                 HAVING Count(*) >=2)
4

3 に答える 3

2

もしかして:

Select OwnerID, FName, LName 
From Owner 
Where OwnerID In (Select OwnerID 
                 From Property 
                 Group By OwnerID 
                 Having Count(OwnerId) >= 2)

ただし、複数のプロパティを所有するすべての所有者を取得しようとしている場合、プロパティには常に1人の所有者しかいないと想定されますが、現実の世界では常にそうであるとは限りません。

于 2013-02-25T01:55:39.683 に答える
2

@Mitch Wheat answerのようなIN演算子を使用するか、EXISTSを使用できます。

Select OwnerID, FName, LName 
From Owner a
Where EXISTS (Select b.OwnerID 
                 From Property b
                 WHERE a.OwnerID = b.OwnerID
                 Group By b.OwnerID 
                 Having Count(b.OwnerId) >= 2)
于 2013-02-25T01:59:28.757 に答える
1

パフォーマンスによって私はします

Select OwnerID, FName, LName 
From Owner a
Where EXISTS (Select *
             From Property b
             WHERE a.OwnerID = b.OwnerID
             Group By b.OwnerID 
             Having Count(*) >= 2)
于 2013-02-25T04:53:45.060 に答える