13
のサブクエリに参加しますSQLAlchemyへ。これは私がこれまで持っているものです:は、私はfollwing SQLクエリ(これは、グループに3つの事で、グループごとに特定のカラムの最大のget)を持っているSQLAlchemyの
p1 = aliased(Packages)
d1 = aliased(Distribution)
sq = session.\
query(
Packages.Name,
Packages.Arch,
Distribution.repo,
func.max(Packages.Date).\
label('Date')).\
select_from(
Packages).\
join(
Distribution).\
filter(
queryfilter).\
filter(
not_(Distribution.repo.\
like('%staging'))).\
group_by(
Packages.Name,
Packages.Arch,
Distribution.repo).subquery()
result = session.\
query(
p1, d1.repo).\
select_from(
p1).\
join(
d1).\
join(
sq,
p1.Name==sq.c.Name,
p1.Arch==sq.c.Arch,
d1.repo==sq.c.repo,
p1.Date==sq.c.Date).\
order_by(p1.nvr).all()
サブクエリにジョインすると問題が発生します。私は、from句が参加していないことを示すエラーが表示されます。これは、引数として結合関数のサブクエリの直後に1つを指定するため、奇妙です。私が間違っていることは何か考えていますか?おそらく私は何かをエイリアスして、select_fromをもう一度やり直す必要がありますか?
EDIT:参加しようとしているが、それはそれは参加するためにどこを知らないと言う
Could not find a FROM clause to join from. Tried joining to SELECT "Packages"."Name", "Packages"."Arch", "Distribution".repo, max("Packages"."Date") AS "Date" FROM "Packages" JOIN "Distribution" ON "Packages".rpm_id = "Distribution".rpm_id WHERE "Packages"."Name" LIKE :Name_1 AND "Distribution".repo NOT LIKE :repo_1 GROUP BY "Packages"."Name", "Packages"."Arch", "Distribution".repo, but got: Can't find any foreign key relationships between 'Join object on %(139953254400272 Packages)s(139953254400272) and %(139953256322768 Distribution)s(139953256322768)' and '%(139953257005520 anon)s'.
正確なエラー。私の構文に何か問題はありますか?私はjoin関数の中身に基づいて正しいと思います。
サブクエリのエイリアスを試み、リテラル結合条件を使用してみます。ここで少し時間切れにする必要があるかもしれません。 – javex
リテラル結合条件はどのように使用できますか?それはどういう意味ですか?私は特定のエラーで自分の投稿を更新しました。 – miscsubbin