从另一个数据库获取最近的五次页面访问



我正在编写一个查询,该查询应该提供id、名称和城市,以及最后访问的五个页面。id、名称和城市来自表1,最后访问的五个页面来自表2。

我现在拥有的是:

SELECT 
id AS `ID`, 
name AS `Company Name`, 
city AS `City`, 
(
SELECT table2.pagePath
FROM table2
WHERE table2.visitdate = 
(
SELECT MAX(table2.visitdate)
FROM table2
)
)
FROM table1
LEFT JOIN table2
ON table1.id = table2.id
WHERE zip_code = "1111 AB"
GROUP BY table1.id;

正如你可能注意到的,它不起作用。。。

我正在尝试使用子查询来获取最近访问的页面,作为五个页面中的第一个。我得到一个响应,它是所有返回行的相同页面路径。

有谁能把我推向正确的方向?

干杯!

我想你想要这样的东西:

select t.*, t2.*
from table1 t1 left join
(select t2.*,
row_number() over (partition by t2.id order by t2.visitdate desc) as seqnum
from table2 t2
) t2
on t2.id = t1.idand t2.seqnum <= 5;

请注意,您的查询似乎具有问题中未描述的逻辑。我关注的是你提出的问题,而不是与问题没有太大关系的问题。

最新更新