文档显示这里如何使用
如果我输入
如果我输入
以下是文档示例的输出。第一个是正确的,第二个和第三个是错误的。
IN
运算符,但我找不到如何使用NOT IN
运算符。如果我输入
not <<
,会出现语法错误。如果我输入
not <FieldName> <<
,会得到WHERE False
而不是子查询,例如WHERE (<FieldName> NOT IN (SELECT ...
。以下是文档示例的输出。第一个是正确的,第二个和第三个是错误的。
>>> Tweet.select().where(Tweet.user << a_users).sql()
('SELECT t1."id", t1."user_id", t1."message", t1."created_date", t1."is_published" FROM "tweet" AS t1 WHERE (t1."user_id" IN (SELECT t2."id" FROM "user" AS t2 WHERE (Lower(Substr(t2."username", ?, ?)) = ?)))', [1, 1, 'a'])
>>> Tweet.select().where(not Tweet.user << a_users).sql()
('SELECT t1."id", t1."user_id", t1."message", t1."created_date", t1."is_published" FROM "tweet" AS t1 WHERE ?', [False])
>>> Tweet.select().where(Tweet.user not << a_users).sql()
SyntaxError: invalid syntax
<<
以表示 SQL 中的IN
并不意味着它可以更改 Python 语法。 - abarnert