buzcrawl
buzcrawl

Reputation: 103

understanding existing SQL query

I am trying to read some exiting SQL queries written for MS SQL server.

I don't have access to database, table names etc.. Just raw query format...And I need to do some analysis on the fields required..

I need some help in understanding what certain query statements are doing...such as in the following block...

    select FIELD1, x2.FIELD2
    into #temp
    from #temp1 x1 join #temp2 x2
    on x1.FIELD1 = x2.FIELD2
    and x1.FIELD3 = x2.MAXOCCUR

I have basic SQL understanding.. But I need to understand couple of things....Why does 'into' and 'from' statements have a '#' infront of table names.....what are x1 and x2 in this case. Why not just say

          temp1.FIELD1 = temp2.FIELD2    instead of
          x1.FIELD1 = x2.FIELD2

.....Am I missing something or is this query formed weird to begin with....I understand joins etc...

Can someone help me out...

Thanks

Upvotes: 0

Views: 98

Answers (2)

BWS
BWS

Reputation: 3836

As mentioned, the # signs indicate a TEMPORARY table.

x1 and x2 are used as "table alias" in this query. Yes, you could write

temp1.FIELD1 = temp2.FIELD2 instead of x1.FIELD1 = x2.FIELD2

but, consider if the tables had long names. Then using an alias makes the query easier to read (for humans. the computer doesn't really care).

Upvotes: 1

mituw16
mituw16

Reputation: 5250

That is selecting from two already temp existing temp tables into a new temp table. The x1.FIELD1 is called aliasing. It's used so you don't have to type full table names when writing the query

Upvotes: 1

Related Questions