@@ -186,6 +186,7 @@ public function innerJoin(
186186 string $ rightTable = null ,
187187 string $ leftColumn = null ,
188188 string $ rightColumn = null ,
189+ string $ tableAs = null ,
189190 $ condition = \EQ
190191 ) {
191192 return $ this ->joining (
@@ -194,6 +195,7 @@ public function innerJoin(
194195 $ rightTable ,
195196 $ leftColumn ,
196197 $ rightColumn ,
198+ $ tableAs ,
197199 $ condition
198200 );
199201 }
@@ -203,6 +205,7 @@ public function leftJoin(
203205 string $ rightTable = null ,
204206 string $ leftColumn = null ,
205207 string $ rightColumn = null ,
208+ string $ tableAs = null ,
206209 $ condition = \EQ
207210 ) {
208211 return $ this ->joining (
@@ -211,6 +214,7 @@ public function leftJoin(
211214 $ rightTable ,
212215 $ leftColumn ,
213216 $ rightColumn ,
217+ $ tableAs ,
214218 $ condition
215219 );
216220 }
@@ -220,6 +224,7 @@ public function rightJoin(
220224 string $ rightTable = null ,
221225 string $ leftColumn = null ,
222226 string $ rightColumn = null ,
227+ string $ tableAs = null ,
223228 $ condition = \EQ
224229 ) {
225230 return $ this ->joining (
@@ -228,6 +233,7 @@ public function rightJoin(
228233 $ rightTable ,
229234 $ leftColumn ,
230235 $ rightColumn ,
236+ $ tableAs ,
231237 $ condition
232238 );
233239 }
@@ -237,14 +243,16 @@ public function fullJoin(
237243 string $ rightTable = null ,
238244 string $ leftColumn = null ,
239245 string $ rightColumn = null ,
246+ string $ tableAs = null ,
240247 $ condition = \EQ
241248 ) {
242249 return $ this ->joining (
243250 'FULL ' ,
244251 $ leftTable ,
245252 $ rightTable ,
246- $ $ leftColumn ,
253+ $ leftColumn ,
247254 $ rightColumn ,
255+ $ tableAs ,
248256 $ condition
249257 );
250258 }
@@ -269,36 +277,42 @@ public function fullJoin(
269277 *
270278 * @param string $leftColumn -
271279 * @param string $rightColumn -
280+ * @param string $tableAs -
272281 *
273282 * @param string $condition -
274283 *
275284 * @return bool|string JOIN sql statement, false for error
276- */
285+ */
277286 private function joining (
278287 String $ type = \_INNER ,
279288 string $ leftTable = null ,
280289 string $ rightTable = null ,
281290 string $ leftColumn = null ,
282291 string $ rightColumn = null ,
292+ string $ tableAs = null ,
283293 $ condition = \EQ
284294 ) {
285295 if (
286296 !\in_array ($ type , \_JOINERS )
287297 || !\in_array ($ condition , \_BOOLEAN )
288298 || empty ($ leftTable )
289- || empty ($ rightTable ) || empty ($ columnFields ) || empty ($ leftColumn )
299+ || empty ($ rightTable )
300+ || empty ($ leftColumn )
290301 ) {
291302 return false ;
292303 }
293304
305+ if (empty ($ tableAs ))
306+ $ tableAs = $ rightTable ;
307+
294308 if (\is_string ($ leftColumn ) && empty ($ rightColumn ))
295- $ onCondition = ' ON ' . $ leftTable . $ leftColumn . ' = ' . $ rightTable . $ leftColumn ;
309+ $ onCondition = ' ON ' . $ leftTable . ' . ' . $ leftColumn . ' = ' . $ tableAs . ' . ' . $ leftColumn ;
296310 elseif ($ condition !== \EQ )
297- $ onCondition = ' ON ' . $ leftTable . $ leftColumn . " $ condition " . $ rightTable . $ rightColumn ;
311+ $ onCondition = ' ON ' . $ leftTable . ' . ' . $ leftColumn . ' ' . $ condition . ' ' . $ tableAs . ' . ' . $ rightColumn ;
298312 else
299- $ onCondition = ' ON ' . $ leftTable . $ leftColumn . ' = ' . $ rightTable . $ rightColumn ;
313+ $ onCondition = ' ON ' . $ leftTable . ' . ' . $ leftColumn . ' = ' . $ tableAs . ' . ' . $ rightColumn ;
300314
301- return ' ' . $ type . ' JOIN ' . $ rightTable . $ onCondition ;
315+ return ' ' . $ type . ' JOIN ' . $ rightTable . ' AS ' . $ tableAs . ' ' . $ onCondition ;
302316 }
303317
304318 public function orderBy ($ orderBy , $ order )
0 commit comments