《go web 编程》第四章 访问数据库:使用 Beego orm 库进行 ORM 开发

关联查询

有些应用却需要用到连接查询,所以现在 beego orm 提供了一个简陋的实现方案:
image.png

上面代码中我们看到了一个 struct 关联查询

Group By 和 Having

针对有些应用需要用到 group by 的功能,beego orm 也提供了一个简陋的实现


image.png

上面的代码中出现了两个新接口函数

GroupBy: 用来指定进行 groupby 的字段

Having: 用来指定 having 执行的时候的条件

使用原生 sql

简单示例:


image.png

复杂原生 sql 使用:

func (m *User) Query(name string) user []User {
    var o orm.Ormer
    var rs orm.RawSeter
    o = orm.NewOrm()
    rs = o.Raw("SELECT * FROM user "+
        "WHERE name=? AND uid>10 "+
        "ORDER BY uid DESC "+
        "LIMIT 100", name)
    // var user []User
    num, err := rs.QueryRows(&user)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(num)
        // return user
    }
    return
}   

推荐阅读更多精彩内容