diff --git a/src/entity/relation.rs b/src/entity/relation.rs index f75b3a89..441a0524 100644 --- a/src/entity/relation.rs +++ b/src/entity/relation.rs @@ -37,8 +37,8 @@ pub trait Linked { fn find_linked() -> Select { let mut select = Select::new(); - for rel in Self::link() { - select = select.join(JoinType::InnerJoin, rel); + for rel in Self::link().into_iter().rev() { + select = select.join_rev(JoinType::InnerJoin, rel); } select } diff --git a/src/query/join.rs b/src/query/join.rs index 12999db8..be759e97 100644 --- a/src/query/join.rs +++ b/src/query/join.rs @@ -249,8 +249,8 @@ mod tests { [ r#"SELECT `filling`.`id`, `filling`.`name`"#, r#"FROM `filling`"#, - r#"INNER JOIN `cake_filling` ON `cake`.`id` = `cake_filling`.`cake_id`"#, - r#"INNER JOIN `filling` ON `cake_filling`.`filling_id` = `filling`.`id`"#, + r#"INNER JOIN `cake_filling` ON `cake_filling`.`filling_id` = `filling`.`id`"#, + r#"INNER JOIN `cake` ON `cake`.`id` = `cake_filling`.`cake_id`"#, ] .join(" ") );