Je suis en train d'effectuer une jointure gaucheSQLite.swift effectuer une jointure gauche et en utilisant les données
SELECT TProgram.ProgramName, TProgram.ProgramPath From TProgram
LEFT JOIN TIcons ON TIcons.ProgramName = TProgram.ProgramName
WHERE TIcons.ProgramName IS NULL
GROUP BY TProgram.ProgramName
avec rapide. J'ai donc fait ce qui suit.
let program = db["TProgram"]
let icons = db["TIcons"]
let programNameDB = Expression<String>("ProgramName")
let programNameDBI = Expression<String>("ProgramName")
let programPathDB = Expression<String>("ProgramPath")
let all = program.select(programNameDB, programPathDB).join(Query.JoinType.LeftOuter, icons, on: programNameDB == icons[programNameDBI]).filter(programNameDBI == "").group(programNameDB)
je ne peux pas vérifier si elle fonctionne parce que les résultats suivants dans un fatal error: ambiguous column name:
let item = all.first!
let arr = Array(all)
Si j'essaie println(all)
je peux voir « TProgram » dans la console de débogage.
Comment puis-je accéder aux données?
MISE À JOUR J'ai essayé ce qui suit. L'erreur a disparu, mais aucune valeur ne semble être là.
func readTProgramNames() -> (Query){
let program = db["TProgram"]
let icons = db["TIcons"]
let programNameDB = Expression<String>("ProgramName")
let programNameDBI = Expression<String>("ProgramName")
let programPathDB = Expression<String>("ProgramPath")
let all = program
.select(program[programNameDB], program[programPathDB])
.join(.LeftOuter, icons, on: program[programNameDB] == icons[programNameDBI])
.filter(icons[programNameDBI] == "")
.group(program[programNameDB])
let item = all.first!
println(item[program[programNameDB]])
return all
}