Can anyone tell me how can I write the equivalent of a left join without really using left joins.
Select * from a left join b on a.name = b.name.
Oracle disguised left join:
SELECT * FROM A, B
WHERE a.name = b.name(+)
Generic :
SELECT a.*, case c.existence WHEN 1 then c.name ELSE NULL END
FROM A
INNER JOIN ( SELECT name name, 1 existence FROM B
UNION ALL
SELECT a.name name, 0 existence FROM A
WHERE a.name NOT IN ( SELECT name FROM B )
) C
ON c.name = a.name