LEFT JOIN a table to a query where the query has a literal in the SELECT clause will replicate the literal for non joined records.
Table1 |
| ||||||||||||||||||||
Table2 |
| ||||||||||||||||||||
Query1 Introduce a literal. SELECT Key, "XYZ" AS myLit, myNum FROM Table2; |
| ||||||||||||||||||||
Query2 The bug. SELECT Table1.Key, myText, myNum, myLit FROM Table1 LEFT JOIN Query1 ON Table1.Key=Query1.Key; |
| ||||||||||||||||||||
Query3 The fix. SELECT DISTINCT * FROM Query1 WHERE myLit="XYZ"; |
| ||||||||||||||||||||
Query4 Bug Free! SELECT Table1.Key, myText, myNum, myLit FROM Table1 LEFT JOIN Query3 ON Table1.Key=Query3.Key; |
|