Diesel 的Inner Join

inner join 的代码如下:

        warehouse::table
            .inner_join(commodity::table.on(warehouse::commodity_id.eq(commodity::id)))
            .select((warehouse::commodity_id,commodity::title,commodity::summary,warehouse::num))
            .filter(warehouse::user_id.eq(uid))
            .get_results::<WareHouseCommodityDTO>(conn)

有两点需要注意:

第一  在schema里定义好宏

allow_tables_to_appear_in_same_query!(
    commodity,
    warehouse,
);

第二 定放好接收的数据结构

#[derive(Serialize, Queryable, Debug)]
pub struct WareHouseCommodityDTO {
    pub commodity_id: i32,
    pub title: String,
    pub summary: String,
    // pub body: String,
    pub num: i32,
}

 

Tags

添加新评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。