左結合を実行しようとしています
SELECT TProgram.ProgramName, TProgram.ProgramPath From TProgram
LEFT JOIN TIcons ON TIcons.ProgramName = TProgram.ProgramName
WHERE TIcons.ProgramName IS NULL
GROUP BY TProgram.ProgramName
スイフトで。だから私は次のことをしました。
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)
次の結果が発生するため、機能しているかどうかを確認できませんfatal error: ambiguous column name:
let item = all.first!
let arr = Array(all)
試しprintln(all)てみると、デバッグ コンソールに「TProgram」が表示されます。
どうすればデータにアクセスできますか?
更新 次のことを試しました。エラーはなくなりましたが、そこに値がないようです。
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
}