[英]How to join one-to-many tables?
我在SQLite中有一个类似下面的场景:一些其价格在一段时间内存储在价格表中的项目。 当前一件商品的价格是:
那么,如何在SQLite中的表格下方联接,以便获得具有其当前价格的项目清单?
此外,如果有多个联接,是否会导致过多的性能下降?
要获取具有最大ID的行,请使用相关的子查询,该子查询按ID排序,并仅获取返回的第一行:
SELECT name,
(SELECT price
FROM Table2
WHERE fkItemID = Table1.id
ORDER BY id DESC
LIMIT 1
) AS current_price
FROM Table1
如果有一个索引可以搜索fkItemID
,然后对id
进行排序,则此查询非常有效:
CREATE INDEX Table2_fkItemID_id ON Table2(fkItemID, id);
(如果历史价格不高,则实际上没有必要对id
列建立索引。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.