Skip to content

Commit b976e07

Browse files
committed
add except_select() method
1 parent ee566d4 commit b976e07

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

simple_query_builder/querybuilder.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -647,17 +647,14 @@ def union_select(self, table: Union[str, list, dict], union_all: bool = False):
647647

648648
return self
649649

650-
if isinstance(fields, dict) or isinstance(fields, list) or isinstance(fields, str):
651-
self._sql += f"SELECT {self._prepare_aliases(fields)}"
652-
else:
653-
self.set_error(f"Incorrect type of fields in {inspect.stack()[0][3]} method. Fields must be String, List or Dictionary")
650+
def except_select(self, table: Union[str, list, dict]):
651+
if not table:
652+
self.set_error(f"Empty table in {inspect.stack()[0][3]} method")
654653
return self
655654

656-
if isinstance(table, dict) or isinstance(table, str):
657-
self._sql += f" FROM {self._prepare_aliases(table)}"
658-
else:
659-
self.set_error(f"Incorrect type of table in {inspect.stack()[0][3]} method. Table must be String or Dictionary")
660-
return self
655+
self._concat = True
656+
fields = self._fields if self._fields else '*'
657+
self._sql += f" EXCEPT SELECT {self._prepare_aliases(fields)} FROM {self._prepare_aliases(table)}"
661658

662659
return self
663660

0 commit comments

Comments
 (0)