私は次のようなことをしようとしています。その人の最も古い犬の名前も含む人のレコードを返す必要があります (人が 1 匹以上の犬を飼っている場合)。以下のクエリはNULL
、dogName
. Top 1
(確認したところ、有効なデータがあります)結合クエリのandOrder by
の部分を削除すると、有効なdogName
が返されますが、「最も古い」犬は返されません。TOP 1
and を追加するとOrderBy
NULL が返されるのはなぜですか?
SELECT
pt.firstName [FirstName],
pt.lastName [LastName],
joinQuery.dogName [dogName]
FROM dbo.PersonTable pt
LEFT OUTER JOIN
(
SELECT
TOP 1
dt.dogName [dogName],
dt.dogAge [dogAge]
FROM
DogTable dt
ORDER BY dt.dogAge
) joinQuery ON joinQuery.PersonId = pt.Id
WHERE
pt.firstName = 'john'
注: これは、フォーラムに投稿することを許可されていないクエリに似たクエリです。
また、私は決して専門家ではないので、この問題を間違って解決しようとしている可能性があります。前もって感謝します。