loader: async ({ params }) => {
const { id } = params;
// main table
const player = createPlayers(id);
// other tables
const qualification = createResults(id, "qualification");
const institute = createResults(id, "institute");
const area = createResults(id, "area");
const national = createResults(id, "national");
// live collection with joins
const collection = createLiveQueryCollection((q) => {
return q
.from({ p: player })
.leftJoin({ qualification }, ({ p, qualification }) => eq(p.id, qualification.id))
.leftJoin({ institute }, ({ p, institute }) => eq(p.id, institute.id))
.leftJoin({ area }, ({ p, area }) => eq(p.id, area.id))
.leftJoin({ national }, ({ p, national }) => eq(p.id, national.id))
.select(({ p, qualification, institute, area, national }) => ({
id: p.id,
category: p.category,
qualification,
institute,
area,
national,
}));
});
loader: async ({ params }) => {
const { id } = params;
// main table
const player = createPlayers(id);
// other tables
const qualification = createResults(id, "qualification");
const institute = createResults(id, "institute");
const area = createResults(id, "area");
const national = createResults(id, "national");
// live collection with joins
const collection = createLiveQueryCollection((q) => {
return q
.from({ p: player })
.leftJoin({ qualification }, ({ p, qualification }) => eq(p.id, qualification.id))
.leftJoin({ institute }, ({ p, institute }) => eq(p.id, institute.id))
.leftJoin({ area }, ({ p, area }) => eq(p.id, area.id))
.leftJoin({ national }, ({ p, national }) => eq(p.id, national.id))
.select(({ p, qualification, institute, area, national }) => ({
id: p.id,
category: p.category,
qualification,
institute,
area,
national,
}));
});