我正在尝试使用SQLite.swift
库在swift中加入几个表,我遇到了一些问题。以下代码显示了问题:
我先加入表格:
let ext_tasks = tasks.join(tasktypes, on: tasktypes[tty_id] == tasks[task_type])
.join(preUsers, on: preUsers[Worker_ID] == task_ownerID)
.order(task_dueDate)
.filter(task_ownerID == iUserID)
此时我已加入表格,tasks
,task types
和preUsers
中的所有字段都已正确显示。
以下我运行第二个连接语句:
let ext_equipment = equipment.join(equipment_type, on: equipment_type[eqt_id] == equipment[equ_type])
.join(facilities, on: facilities[fac_id] == equipment[equ_facid])
.join(eqowners, on: eqowners[Worker_ID] == equipment[equ_owner])
.order(equ_make)
.filter(equ_status >= 0)
同样,在运行此语句后,我可以访问equipment
,equipment_type
,facilities
和eqowners
表中的所有字段,到此为止所有内容都按预期工作...
然而,我尝试使用以下方法加入上述两个结果:
let comp_tasks = ext_tasks.join(ext_equipment, on: ext_equipment[equ_id] == ext_tasks[task_eqID])
.order(task_dueDate)
这是我遇到问题的地方,似乎来自ext_tasks
查询的表存在但只有equipment
查询中的ext_equipment
表可用。
此外,当我尝试访问"facilities"."facility_name"
字段时,收到以下消息:该字段不存在:
致命错误:没有此类专栏""设施"。"设施名称"'在列中:
["设备"。" EquipmentType_ID","设备"。" Equipment_ID","设备"。& #34; Equipment_Owner_ID","设备"。" Facility_ID","设备"。"状态"," PreUsers&# 34;。" Client_ID"," PreUsers"。" Date_LastLogin"," PreUsers"。" First_Name",&# 34; TaskTypes"。" TaskType_ID"," TaskTypes"。" Type"," Tasks"。" Equipment_ID&#34 ;,"任务"。" Owner_ID","任务"。"优先","任务"。&#34 ; Time_Complete","任务"。" Time_Start"]:
(我删除了那里的一些列以缩短答案,总共显示了53个字段)但是你可以看到只显示第一个连接+设备表中的表,来自第二个查询的连接( equipment_type, facilities and eqowners
)无处可见
如果有人能让我知道为什么会发生这种情况,我会很感激,这已经让我的脑子长达数小时了,而我却无法理解......
提前致谢!