10
10
11
11
namespace NilPortugues \Sql \QueryBuilder \Manipulation ;
12
12
13
- use NilPortugues \Sql \QueryBuilder \Syntax \SyntaxFactory ;
14
13
use NilPortugues \Sql \QueryBuilder \Syntax \Where ;
14
+ use NilPortugues \Sql \QueryBuilder \Syntax \Column ;
15
+ use NilPortugues \Sql \QueryBuilder \Syntax \SyntaxFactory ;
15
16
16
17
/**
17
18
* Class JoinQuery.
@@ -70,8 +71,8 @@ public function setTable($table)
70
71
71
72
/**
72
73
* @param string $table
73
- * @param string $selfColumn
74
- * @param string $refColumn
74
+ * @param mixed $selfColumn
75
+ * @param mixed $refColumn
75
76
* @param string[] $columns
76
77
*
77
78
* @return Select
@@ -83,8 +84,8 @@ public function leftJoin($table, $selfColumn = null, $refColumn = null, $columns
83
84
84
85
/**
85
86
* @param string $table
86
- * @param string $selfColumn
87
- * @param string $refColumn
87
+ * @param mixed $selfColumn
88
+ * @param mixed $refColumn
88
89
* @param string[] $columns
89
90
* @param string $joinType
90
91
*
@@ -110,8 +111,8 @@ public function join(
110
111
111
112
/**
112
113
* @param Select $select
113
- * @param string $selfColumn
114
- * @param string $refColumn
114
+ * @param mixed $selfColumn
115
+ * @param mixed $refColumn
115
116
*
116
117
* @return Select
117
118
*/
@@ -121,11 +122,15 @@ public function addJoin(Select $select, $selfColumn, $refColumn)
121
122
$ table = $ select ->getTable ()->getName ();
122
123
123
124
if (!isset ($ this ->joins [$ table ])) {
124
- $ newColumn = array ($ selfColumn );
125
- $ select ->joinCondition ()->equals (
126
- $ refColumn ,
127
- SyntaxFactory::createColumn ($ newColumn , $ this ->select ->getTable ())
128
- );
125
+ if (!$ selfColumn instanceof Column) {
126
+ $ newColumn = array ($ selfColumn );
127
+ $ selfColumn = SyntaxFactory::createColumn (
128
+ $ newColumn ,
129
+ $ this ->select ->getTable ()
130
+ );
131
+ }
132
+
133
+ $ select ->joinCondition ()->equals ($ refColumn , $ selfColumn );
129
134
$ this ->joins [$ table ] = $ select ;
130
135
}
131
136
@@ -148,8 +153,8 @@ public function setJoin($isJoin = true)
148
153
149
154
/**
150
155
* @param string $table
151
- * @param string $selfColumn
152
- * @param string $refColumn
156
+ * @param mixed $selfColumn
157
+ * @param mixed $refColumn
153
158
* @param string[] $columns
154
159
*
155
160
* @internal param null $selectClass
@@ -163,8 +168,8 @@ public function rightJoin($table, $selfColumn = null, $refColumn = null, $column
163
168
164
169
/**
165
170
* @param string $table
166
- * @param string $selfColumn
167
- * @param string $refColumn
171
+ * @param mixed $selfColumn
172
+ * @param mixed $refColumn
168
173
* @param string[] $columns
169
174
*
170
175
* @return Select
@@ -176,8 +181,8 @@ public function crossJoin($table, $selfColumn = null, $refColumn = null, $column
176
181
177
182
/**
178
183
* @param string $table
179
- * @param string $selfColumn
180
- * @param string $refColumn
184
+ * @param mixed $selfColumn
185
+ * @param mixed $refColumn
181
186
* @param string[] $columns
182
187
*
183
188
* @return Select
0 commit comments