Applying joins conditionally in SQL Server -


i have set of records, have select records set have theeir id in either of 2 tables.

suppose have table1 contains

id  name ---------- 1   name1 2   name2 

now need select records table 1 have either id in table2 or in table3

i trying apply or operator witin inner join like:

select *  table1  inner join table2 on table2.id = table1.id or inner join table3 on table3.id = table1.id. 

is possible? best method approach this? not able use

if exist(select 1 table2 id=table1.id) select table1 

could me on this?

i inclined use exists:

select t1.* table1 t1 exists (select 1 table2 t2 t2.id = t1.id) or       exists (select 1 table3 t3 t3.id = t1.id) ; 

the advantage using exists (or in) on join involves duplicate rows. if table2 or table3 have multiple rows given id, version using join produce multiple rows in result set.


Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -