From 28db1812bd40982b359b58466f659f748f091b1c Mon Sep 17 00:00:00 2001 From: Francesco Danti Date: Mon, 16 Apr 2018 20:08:25 +0300 Subject: [PATCH 1/2] Table Alias correction if i want a table alias, because i put it in the conf, i need to get it in my query --- SuperSQL/lib/parser.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/SuperSQL/lib/parser.php b/SuperSQL/lib/parser.php index cc3bca6..5c9e866 100644 --- a/SuperSQL/lib/parser.php +++ b/SuperSQL/lib/parser.php @@ -161,12 +161,16 @@ static function table($table) if ($i !== 0) $sql .= ', '; $sql .= '`' . $val . '`'; - if ($t) + if ($alias) $sql .= ' AS `' . $alias . '`'; } return $sql; } else { - return '`' . $table . '`'; + $alias = self::getType($table); + $sql = '`' . $table . '`'; + if ($alias) + $sql .= ' AS `' . $alias . '`'; + return $sql; } } static function value($type, $value) From 4d0d86d4965c2ee23a330786a3d9d459fc862a8f Mon Sep 17 00:00:00 2001 From: Francesco Danti Date: Wed, 18 Apr 2018 07:43:16 +0300 Subject: [PATCH 2/2] add JOIN USING statement In PHP 7.1.15 if you do something like : SQL : SELECT tbl_a.col_a, tbl_a.col_b, tbl_b.col_ba, tbl_b.col_bb FROM tbl_a LEFT JOIN tbl_b ON (tbl_a.ID = tbl_b.ID) results will be nulled for all tbl_b columns with USING this problem is solved. it works but i don't like my conditional : strpos(array_values($val)[0],'.') --- SuperSQL/lib/parser.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/SuperSQL/lib/parser.php b/SuperSQL/lib/parser.php index 5c9e866..0176964 100644 --- a/SuperSQL/lib/parser.php +++ b/SuperSQL/lib/parser.php @@ -364,7 +364,15 @@ static function JOIN($join, &$sql, &$values, &$i) break; } - $sql .= ' JOIN `' . $key . '` ON '; + $sql .= ' JOIN `' . $key . '` '; + + if(!$raw && count($val) == 1 && strpos(array_values($val)[0],'.') === false) { + $sql .= 'USING (`' . array_values($val)[0] . '`) '; + return; + } + + $sql .= 'ON '; + if ($raw) { $sql .= $val; } else {