Showing posts with label dis. Show all posts
Showing posts with label dis. Show all posts

Friday, March 23, 2012

joins

hi dis is kalaivanan,
which one of inner join or left join is efficient and in what way.Hi,
Inner join is always the best; but the purpose of Left and Right outer joins
serves different purpose. If you need all the data immeterial of join
from left most table participate in the join then use LEFT OUTER and if it
is vice versa use RIGHT OUTER join. INNER JOIN gives
only the matching records of the join.
Read the below infor from books online:-
Join conditions can be specified in either the FROM or WHERE clauses;
specifying them in the FROM clause is recommended. WHERE and HAVING clauses
can also contain search conditions to further filter the rows selected by
the join conditions.
Joins can be categorized as:
a.. Inner joins (the typical join operation, which uses some comparison
operator like = or <>). These include equi-joins and natural joins.
Inner joins use a comparison operator to match rows from two tables based
on the values in common columns from each table. For example, retrieving all
rows where the student identification number is the same in both the
students and courses tables.
b.. Outer joins. Outer joins can be a left, a right, or full outer join.
Outer joins are specified with one of the following sets of keywords when
they are specified in the FROM clause:
a.. LEFT JOIN or LEFT OUTER JOIN
The result set of a left outer join includes all the rows from the left
table specified in the LEFT OUTER clause, not just the ones in which the
joined columns match. When a row in the left table has no matching rows in
the right table, the associated result set row contains null values for all
select list columns coming from the right table.
b.. RIGHT JOIN or RIGHT OUTER JOIN.
A right outer join is the reverse of a left outer join. All rows from
the right table are returned. Null values are returned for the left table
any time a right table row has no matching row in the left table.
c.. FULL JOIN or FULL OUTER JOIN.
A full outer join returns all rows in both the left and right tables.
Any time a row has no match in the other table, the select list columns from
the other table contain null values. When there is a match between the
tables, the entire result set row contains data values from the base tables.
c.. Cross joins.
Cross joins return all rows from the left table, each row from the left
table is combined with all rows from the right table. Cross joins are also
called Cartesian products.
Thanks
Hari
SQL Server MVP
"kalaivanan" <mail2kalai@.gmail.com> wrote in message
news:1156571058.708245.325900@.m79g2000cwm.googlegroups.com...
> hi dis is kalaivanan,
> which one of inner join or left join is efficient and in what way.
>

joins

hi dis is kalaivanan,
which one of inner join or left join is efficient and in what way.Hi,
Inner join is always the best; but the purpose of Left and Right outer joins
serves different purpose. If you need all the data immeterial of join
from left most table participate in the join then use LEFT OUTER and if it
is vice versa use RIGHT OUTER join. INNER JOIN gives
only the matching records of the join.
Read the below infor from books online:-
Join conditions can be specified in either the FROM or WHERE clauses;
specifying them in the FROM clause is recommended. WHERE and HAVING clauses
can also contain search conditions to further filter the rows selected by
the join conditions.
Joins can be categorized as:
a.. Inner joins (the typical join operation, which uses some comparison
operator like = or <> ). These include equi-joins and natural joins.
Inner joins use a comparison operator to match rows from two tables based
on the values in common columns from each table. For example, retrieving all
rows where the student identification number is the same in both the
students and courses tables.
b.. Outer joins. Outer joins can be a left, a right, or full outer join.
Outer joins are specified with one of the following sets of keywords when
they are specified in the FROM clause:
a.. LEFT JOIN or LEFT OUTER JOIN
The result set of a left outer join includes all the rows from the left
table specified in the LEFT OUTER clause, not just the ones in which the
joined columns match. When a row in the left table has no matching rows in
the right table, the associated result set row contains null values for all
select list columns coming from the right table.
b.. RIGHT JOIN or RIGHT OUTER JOIN.
A right outer join is the reverse of a left outer join. All rows from
the right table are returned. Null values are returned for the left table
any time a right table row has no matching row in the left table.
c.. FULL JOIN or FULL OUTER JOIN.
A full outer join returns all rows in both the left and right tables.
Any time a row has no match in the other table, the select list columns from
the other table contain null values. When there is a match between the
tables, the entire result set row contains data values from the base tables.
c.. Cross joins.
Cross joins return all rows from the left table, each row from the left
table is combined with all rows from the right table. Cross joins are also
called Cartesian products.
Thanks
Hari
SQL Server MVP
"kalaivanan" <mail2kalai@.gmail.com> wrote in message
news:1156571058.708245.325900@.m79g2000cwm.googlegroups.com...
> hi dis is kalaivanan,
> which one of inner join or left join is efficient and in what way.
>

joins

hi dis is kalaivanan,
which one of inner join or left join is efficient and in what way.kalaivanan wrote:

Quote:

Originally Posted by

hi dis is kalaivanan,
which one of inner join or left join is efficient and in what way.


Inner joins and outer joins achieve different results so in general it
won't make sense to compare them on performance.

In cases where an inner and outer join are guaranteed to give the same
result I suggest you test it out for yourself. Performance is too
heavily dependent on other factors for there to a be a single, simple
answer.

--
David Portas, SQL Server MVP

Whenever possible please post enough code to reproduce your problem.
Including CREATE TABLE and INSERT statements usually helps.
State what version of SQL Server you are using and specify the content
of any error messages.

SQL Server Books Online:
http://msdn2.microsoft.com/library/...US,SQL.90).aspx
--|||David Portas (REMOVE_BEFORE_REPLYING_dportas@.acm.org) writes:

Quote:

Originally Posted by

In cases where an inner and outer join are guaranteed to give the same
result I suggest you test it out for yourself.


And in that case, I expect the optimizer to see that the left join is
really an inner join, and thus you would get the same query plan.

The question is simply not meaningful, since, as David pointed, the
difference lies in functionality.

--
Erland Sommarskog, SQL Server MVP, esquel@.sommarskog.se
Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pr...oads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodin...ions/books.mspx