背景:第一篇文章,所以对我来说放轻松!;-) 我在跨 5 个表连接 SQLite 时遇到了一些问题。我正在使用 Python 在我的 Raspberry Pi 上构建一个浇水系统,并在 SQLite 中构建了以下表结构:
deviceTable - 表格列出所有浇水设备
programTable - 列出所有浇水程序的表格
zoneTable - 列出所有浇水区的表格
assignProgramTable - 用于将多个浇水程序分配给多个区域的桥接表
assignDeviceTable - 用于将许多设备分配给许多浇水区的桥接表。
问题:我目前正在使用以下查询来尝试将所有这些表连接在一起,以便我可以开始使用多线程 Python 脚本控制我的 Raspberry Pi……我最初将它作为嵌套 SQL 脚本工作(在我的 Python 脚本中动态工作),但是当尝试在数据库结果中运行多个线程时它变得有点复杂。本质上,我计划从 SQL 查询中获取一些键值,并
当每个条目应该只有一个时,似乎返回了多行..知道处理这个问题的最佳方法吗?我找到了许多建议使用 DISTINCT 选项的答案(这不起作用),尽管我是否以最好的方式解决这个问题?
SELECT *
FROM deviceTable AS d, programTable AS p
JOIN assignDeviceTable AS ad ON d.deviceID = ad.deviceID
JOIN zoneTable AS z ON z.zoneID = a.zoneID
JOIN assignProgramTable AS a ON p.programID = a.programID
where p.programStatus = "1"
按照 LS_dev 的建议,我已将查询更新为以下内容:
SELECT *
FROM deviceTable AS d, programTable AS p, assignDeviceTable AS ad, zoneTable AS z, assignProgramTable AS ap
JOIN deviceTable ON d.deviceID = ad.deviceID
JOIN assignDeviceTable ON ad.zoneID = z.zoneID
JOIN zoneTable ON z.zoneID = ap.zoneID
JOIN assignProgramTable ON ap.programID = p.programID
where p.programStatus = "1"
不幸的是,这导致更多的行被复制......仍然卡住了!