I've got a Transact SQL problem which I don't understand.
I have 2 tables tblMedewerker2 and tblMedewerker3.
tblMedewerker2 has got the following values for employeenumber :129, 143,144,145,146,147,169.
tblMedewerker3 has got the following values for employeenumber: 129, 143,144,145,146,147, 166,167,168.
They contain 7 respectively 9 rows, so the values are unique.
The following query yields 63 rows :
select
a.employeenumber as emp_a
, b.employeenumber as emp_b
, isnull(a.employeenumber, b.employeenumber) as single_employeenumber
from tblMedewerker2 a
full join
tblMedewerker3 b
on exists
(
select a.employeenumber from tblMedewerker2
union
select b.employeenumber from tblmedewerker3
)
whereas this query yields 10 rows:
select
a.employeenumber as emp_a
, b.employeenumber as emp_b
, isnull(a.employeenumber, b.employeenumber) as single_employeenumber
from tblMedewerker2 a
full join
tblMedewerker3 b
on exists
(
select a.employeenumber from tblMedewerker2
intersect
select b.employeenumber from tblmedewerker3
)
Why would the first query turn the SQL into some sort of CROSS JOIN ?
I would say the exists just gives back a TRUE or a FALSE. So why the difference in numbers of records in both queries ?
Thanks ! Rgds BB