Re: Can someone explain this?

Tech-Archive recommends: Fix windows errors by optimizing your registry

From: Anith Sen (anith_at_bizdatasolutions.com)
Date: 09/16/04


Date: Thu, 16 Sep 2004 14:17:42 -0500

In your second case, FromTtwo is used as an alias for the column ToneId. So
essentially your query is equivalent to:

SELECT * FROM Tone WHERE ToneId IN ( SELECT ToneId )

which due to lack of scoped aliasing, SQL Server identifies as :

SELECT * FROM Tone
 WHERE Tone.ToneId IN ( SELECT Tone.ToneId )

which is evaluated as:

SELECT * FROM Tone
 WHERE Tone.ToneId = Tone.ToneId ;

-- 
Anith