我的代码如下:
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可以选择正确的列,但仍然会引发错误。
编辑
仍然无法解决问题。我创建的表如下:
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仍然说该列是模棱两可的,但只有一个类似的列。
发布于 2017-07-07 14:21:09
找到答案了。我加入了mdm表本身。我需要将连接更改为:
.join(ewp, on: ewp[assetTag] == mdm[assetTag])
https://stackoverflow.com/questions/44953604
复制相似问题