於java hibernate執行以下指令於t4 join結果非如預期,
理論上SELECT結果t1.date1會與t4.date1,
但結果卻不同,用command執行卻又相同~
SELECT t1.*, t2.*, t3.*, t4.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.col1 = t2.col1 LEFT JOIN table3 t3 ON t2.col2 = t3.col2 LEFT JOIN table4 t4 ON t1.date1 = t4.date1
Deubg許久後,想到之前有遇過SELECT t1.col1, t2.col1,
其2個值應不同,但t2.col1卻變成t1.col1之值,
因此將上述指令改成如下就OK了~
SELECT t1.*, t2.*, t3.*, t4.date1_t4 FROM table1 t1 LEFT JOIN table2 t2 ON t1.col1 = t2.col1 LEFT JOIN table3 t3 ON t2.col2 = t3.col2 LEFT JOIN (SELECT date1 as date1_t4 FROM table4) t4 ON t1.date1 = t4.date1_t4
