mirror of
https://codeberg.org/demostf/frontend.git
synced 2026-06-03 18:24:12 +02:00
fix conflicting join when combining player and uploader filter
This commit is contained in:
parent
81b642fa26
commit
51d155d1a8
1 changed files with 10 additions and 6 deletions
|
|
@ -6,7 +6,7 @@ use crate::Result;
|
||||||
use maud::Render;
|
use maud::Render;
|
||||||
use sea_query::extension::postgres::PgExpr;
|
use sea_query::extension::postgres::PgExpr;
|
||||||
use sea_query::{
|
use sea_query::{
|
||||||
Alias, Expr, Func, Order, PostgresQueryBuilder, Query, SelectStatement, SimpleExpr,
|
Alias, Expr, Func, JoinType, Order, PostgresQueryBuilder, Query, SelectStatement, SimpleExpr,
|
||||||
};
|
};
|
||||||
use sea_query_binder::SqlxBinder;
|
use sea_query_binder::SqlxBinder;
|
||||||
use serde::{Deserialize, Deserializer};
|
use serde::{Deserialize, Deserializer};
|
||||||
|
|
@ -83,7 +83,8 @@ impl Demo {
|
||||||
id as i32
|
id as i32
|
||||||
)
|
)
|
||||||
.fetch_optional(connection)
|
.fetch_optional(connection)
|
||||||
.await? else {
|
.await?
|
||||||
|
else {
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -429,11 +430,14 @@ impl Filter {
|
||||||
}
|
}
|
||||||
if let Some(uploader) = &self.uploader {
|
if let Some(uploader) = &self.uploader {
|
||||||
query
|
query
|
||||||
.inner_join(
|
.join_as(
|
||||||
|
JoinType::InnerJoin,
|
||||||
Users::Table,
|
Users::Table,
|
||||||
Expr::col((Users::Table, Users::Id)).equals((Demos::Table, Demos::Uploader)),
|
Alias::new("upload_user"),
|
||||||
|
Expr::col((Alias::new("upload_user"), Users::Id))
|
||||||
|
.equals((Demos::Table, Demos::Uploader)),
|
||||||
)
|
)
|
||||||
.and_where(Expr::col(Users::SteamId).eq(uploader));
|
.and_where(Expr::col((Alias::new("upload_user"), Users::SteamId)).eq(uploader));
|
||||||
}
|
}
|
||||||
if !self.players.is_empty() && self.players.len() < 19 {
|
if !self.players.is_empty() && self.players.len() < 19 {
|
||||||
let mut player = self.players.iter();
|
let mut player = self.players.iter();
|
||||||
|
|
@ -452,7 +456,7 @@ impl Filter {
|
||||||
Users::Table,
|
Users::Table,
|
||||||
Expr::col((Users::Table, Users::Id)).equals((Players::Table, Players::UserId)),
|
Expr::col((Users::Table, Users::Id)).equals((Players::Table, Players::UserId)),
|
||||||
)
|
)
|
||||||
.and_where(Expr::col(Users::SteamId).is_in(self.players.clone()));
|
.and_where(Expr::col((Users::Table, Users::SteamId)).is_in(self.players.clone()));
|
||||||
query.group_by_col((Demos::Table, Players::Id));
|
query.group_by_col((Demos::Table, Players::Id));
|
||||||
query.and_having(
|
query.and_having(
|
||||||
Expr::cust(&players_arr)
|
Expr::cust(&players_arr)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue