我需要从由第三个表链接的两个表中检索记录。除了链接其他两个表的键之外,会话内容不包含我需要的任何信息。
我目前正在使用这些连接:
SELECT sessions.name, rooms.name, slots.type, slots.dayString, slots.startHour, slots.startMinute, slots.endHour, slots.endMinute
FROM slots
INNER JOIN sessions
INNER JOIN rooms
;
在SQLiteDB浏览器中只需要50毫秒,但当我调用相关的API端点时,需要数秒的缓冲时间。
如果加载需要这么长时间,我就不能使用它。除了限制它返回的行数(目前返回77000(之外,还有什么可以改善查询时间的吗?
除了键链接其他两个表。
但是您不使用这些键来设置链接表的条件,所以您实际要做的是3个表的CROSS
连接,结果是所有表的所有行的笛卡尔乘积
对每个联接使用ON
子句来设置条件:
SELECT sn.name, r.name, s.type, s.dayString, s.startHour, s.startMinute, s.endHour, s.endMinute
FROM slots s
INNER JOIN sessions sn ON sn.slot_id = s.slot_id
INNER JOIN rooms r ON r.room_id = sn.room_id;
将我在ON
子句中使用的列名更改为实际的列名。