首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqlite.Swift歧义列名Swift

Sqlite.Swift歧义列名Swift
EN

Stack Overflow用户
提问于 2017-07-06 15:47:49
回答 1查看 481关注 0票数 2

我的代码如下:

代码语言:javascript
复制
let assetTag = Expression<String>("asset_tag")


let query2 = mdm.select(mdm[assetTag],os, mac, lastReported)
                .filter(mdm[assetTag] != "ipad" && location == facility)
                .order(mdm[assetTag])
                .join(mdm, on: ewp[assetTag] == mdm[assetTag])



            let results2 = try! db.prepare(query2)

我的错误是:

致命错误:“尝试!”表达式意外引发错误:不明确的列名: mdm.asset_tag (代码: 1):file mdm.asset_tag行182

我的数据库有两个表,一个名为eWP,另一个称为MDM。两者都有一个名为asset_tag的列,因此我认为通过执行mdmassetTag可以选择正确的列,但仍然会引发错误。

编辑

仍然无法解决问题。我创建的表如下:

代码语言:javascript
复制
let db = try Connection("\(path)/db.sqlite3")

        try db.run(ewp.create { t in
            t.column(assetTag)
            t.column(location)
            t.column(deviceStatus)

        })

        try db.run(mdm.create { t in
            t.column(assetTag)
            t.column(os)
            t.column(mac)
            t.column(lastReported)

        })

    }

出于某种原因,mdmassetTag仍然说该列是模棱两可的,但只有一个类似的列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-07 14:21:09

找到答案了。我加入了mdm表本身。我需要将连接更改为:

.join(ewp, on: ewp[assetTag] == mdm[assetTag])

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44953604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档