2017-07-06 1 views
1

Mein Code ist wie folgt:Sqlite.Swift Mehrdeutige Spaltenname 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) 

ich Störung erhalte, der sagt:

fatal error: 'try!' expression unexpectedly raised an error: ambiguous column name: mdm.asset_tag (code: 1): file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-802.0.53/src/swift/stdlib/public/core/ErrorType.swift, line 182

Meine Datenbank hat zwei Tabellen, eine genannt eWP und ein MDM genannt . Beide haben eine Spalte namens asset_tag, also dachte ich, indem ich mdm [assetTag] tue, das würde das richtige auswählen, aber es wirft immer noch den Fehler.

EDIT

noch nicht Problem zu beheben. Ich eröffne meine Tabellen wie folgt:

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) 

     }) 

    } 

Aus irgendeinem Grunde mdm [AssetTag] noch sagt die Spalte ist nicht eindeutig, aber Theres nur 1 Spalte ähnlich.

Antwort

0

Die Antwort gefunden. Ich trat dem MDM-Tisch bei. Ich musste die Verbindung zu ändern:

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

Verwandte Themen