@@ -168,6 +168,17 @@ public function testUpdate(): void {
168
168
'UPDATE t SET c = 1 WHERE c = 2 '
169
169
);
170
170
171
+ // UPDATE with a table alias.
172
+ $ this ->assertQuery (
173
+ 'UPDATE `t` AS `a` SET `c` = 1 WHERE `a`.`c` = 2 ' ,
174
+ 'UPDATE t AS a SET c = 1 WHERE a.c = 2 '
175
+ );
176
+
177
+ $ this ->assertQuery (
178
+ 'UPDATE `t` AS `a` SET `c` = 1 WHERE `a`.`c` = 2 ' ,
179
+ 'UPDATE t AS a SET a.c = 1 WHERE a.c = 2 '
180
+ );
181
+
171
182
// UPDATE with LIMIT.
172
183
$ this ->assertQuery (
173
184
'UPDATE `t` SET `c` = 1 WHERE rowid IN ( SELECT rowid FROM `t` LIMIT 1 ) ' ,
@@ -179,6 +190,24 @@ public function testUpdate(): void {
179
190
'UPDATE `t` SET `c` = 1 WHERE rowid IN ( SELECT rowid FROM `t` ORDER BY `c` ASC LIMIT 1 ) ' ,
180
191
'UPDATE t SET c = 1 ORDER BY c ASC LIMIT 1 '
181
192
);
193
+
194
+ // UPDATE with multiple tables.
195
+ $ this ->assertQuery (
196
+ 'UPDATE `t1` SET `id` = 1 FROM `t2` WHERE `t1`.`c` = `t2`.`c` ' ,
197
+ 'UPDATE t1, t2 SET t1.id = 1 WHERE t1.c = t2.c '
198
+ );
199
+
200
+ // UPDATE with JOIN.
201
+ $ this ->assertQuery (
202
+ 'UPDATE `t1` SET `id` = 1 FROM `t2` WHERE `t1`.`c` = 2 AND `t1`.`c` = `t2`.`c` ' ,
203
+ 'UPDATE t1 JOIN t2 ON t1.c = t2.c SET t1.id = 1 WHERE t1.c = 2 '
204
+ );
205
+
206
+ // UPDATE with JOIN using a derived table.
207
+ $ this ->assertQuery (
208
+ 'UPDATE `t1` SET `id` = 1 FROM ( SELECT * FROM `t2` ) AS `t2` WHERE `t1`.`c` = 2 AND `t1`.`c` = `t2`.`c` ' ,
209
+ 'UPDATE t1 JOIN ( SELECT * FROM t2 ) AS t2 ON t1.c = t2.c SET t1.id = 1 WHERE t1.c = 2 '
210
+ );
182
211
}
183
212
184
213
public function testDelete (): void {
0 commit comments