Sqlite.Swift 模棱两可的列名 swift



我的代码如下:

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)

我收到错误说:

致命错误:"try!"表达式意外引发错误:不明确的列名:mdm.asset_tag(代码:1(:文件/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-802.0.53/src/swift/stdlib/public/core/ErrorType.swift,第 182 行

我的数据库有两个表,一个叫eWP,一个叫MDM。 两者都有一个名为asset_tag的列,所以我认为通过执行mdm[assetTag]会选择正确的列,但它仍然会抛出错误。

编辑

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

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)
})
}

出于某种原因,mdm[assetTag] 仍然说该列不明确,但只有 1 列这样的列。

找到了答案。我自己加入了 mdm 表。我需要将联接更改为:

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

最新更新