0

私の最初のストアドプロシージャ(sql-server内)。動作させることができず、a.Idで警告が発生します。読んだ後、あまり理解していないので、ストアドプロシージャ内でこの内部結合を使用できるかどうかさえわかりません。

select top 1 b.*, a.*
FROM Bids b
INNER JOIN Auctions a 
ON b.Auction_Id = a.Id
(NOLOCK) WHERE ( a.Ends IS NOT NULL AND a.Starts IS NOT NULL AND a.Starts < @Now AND a.Ends > @Now)
ORDER BY b.CreationTime DESC

実際には、b。*だけが必要ですが、すべてのフィールドを取得する必要があると思いますか?

ありがとう

4

2 に答える 2

1

ロックのヒントを次のように変更します。

INNER JOIN Auctions a WITH(NOLOCK)

完全なクエリは次のようになります。

select top 1 b.*, a.*
FROM Bids b
     JOIN Auctions a WITH(NOLOCK) ON b.Auction_Id = a.Id
WHERE ( a.Ends IS NOT NULL
    AND a.Starts IS NOT NULL
    AND a.Starts < @Now
    AND a.Ends > @Now)
ORDER BY b.CreationTime DESC
于 2012-08-20T12:56:33.940 に答える
1

(Nolock)取り出すか、必要に応じてテーブル名の後に入れてください。

を使用Selectして、クエリ内の任意のテーブルから必要なフィールドを選択できます。

于 2012-08-20T12:57:26.567 に答える