1

我正在尝试使用 PyPika 构建一个选择语句。两个表都有一个id列,我试图从两个表中选择所有列,但id第一个表中的列除外。

这是我想要结束的查询,它在 BigQuery 中正常运行:

SELECT t.* EXCEPT(id), s.* from t join s on t.id = s.id

我一直无法弄清楚如何EXCEPT进入 select 子句。

我尝试了以下语法,但except_of()在这种情况下是不允许的:

t = Table("t")
s = Table("s")
query = Query.from_(t).join(s).on(t.id == s.id).select(t.star.except_of("id")).select(s.star)

我还尝试了一个自定义函数,但这会在结果查询中放置一个无效的逗号。这是我尝试过的:

except_select = CustomFunction("EXCEPT", ["column_to_exclude"])
query = Query.from_(t).join(s).on(t.id == s.id).select(t.star).except_select("id")).select(s.star)

错误地生成

SELECT t.*, EXCEPT(id), s.* from t join s on t.id = s.id

有没有人对如何解决这个问题有任何建议?

4

0 回答 0