| 
	
 | 
 Posted by Hugo Kornelis on 07/12/06 23:09 
On 12 Jul 2006 13:42:50 -0700, M@ wrote: 
 
>I am trying to tie two tables of data together and I'm having some 
>issues. 
> 
>table 1 has about 1700 rows 
>table 2 has about 1000 rows 
>table 3 has about 70 
> 
>they all have one column in common, provider number. 
> 
>select a.provider, a.[survey-date], a.tag, a.code, a.[scope-severity], 
>a.state, a.facilityname, 
>c.prov, c.defic_dt, c.tag_no, c.scopesev, c.theirnam, b.[name] 
>from table1 a 
>inner join table3 b on b.prov = a.provider 
>inner join table2 c on b.prov = c.prov 
> 
>problem is, I am getting 35000 rows instead of 2700. 
> 
>What am I missing? 
>thanks, 
>M@ 
 
Hi M@, 
 
Let's say that for a specific provider, there are 6 rows in table 1, 4 
rows in table 2 and 5 rows in table 3. Since your join conditions only 
specify that the "provider" values should be equal, each of the 6 rows 
for this provider will be joined to each of the 5 in table 3, yielding 
30 rows in the intermediate result - and each of those 30 will be 
combined with each of the 4 rows for this provider in table 2. The end 
result will have 4 * 30 = 120 rows for this single provider! 
 
If you need help correcting the query, then you'll have to post more 
details: the structure of your tables (as CREATE TABLE statements, 
including all constraints, properties and indexes), some well-chosen 
rows of sample data (posted as INSERT statements) and the exected 
results. 
 
--  
Hugo Kornelis, SQL Server MVP
 
  
Navigation:
[Reply to this message] 
 |