我无法进行查询,返回结果如下:
表:series
,usuarios
,siguiendo
,valoraciones_personales
每张表都有这样的记录:
示例:field1(value)
,field2(value)
,...
series
(我参考电视节目,我是西班牙语,在这里我们说“serie = tv_show”)
1. id_serie(1),id_titulo('Sons of anarchy')
2. id_serie(2),id_titulo('Lost')
usuarios
(用户)
1. id_usuario(1), nick('david')
siguiendo
(一个用户跟随一系列)
1. id_serie(1),id_usuario(1)
2. id_serie(2),id_usuario(1)
valoraciones_personales
(个人评估)
1. id_serie(1),id_usuario(1),nota(8)
好吧,我想要的是表siguiendo的所有记录的结果,如果该用户重视该系列中的一个,它必须显示分数(nota in spanish),如果该用户没有得分该系列,我想表现出“没有得分”。
我想要的观点:
*titulo, nota*
- Sons of anarchy, 8
- Lost, without score
任何人都可以帮助我吗?
答案 0 :(得分:1)
特别是在 MSACCESS
中创建一个名为AllUserSeries
的查询SELECT
U.UserID
,U.FullName
,S.SeriesID
,S.SeriesName
FROM
usuarios as U
,series as S
这相当于交叉连接
然后是另一个:
SELECT
A.FullName
,A.SeriesName
,Nz(Cstr(R.Score),"Not Rated") as Rating
FROM
AllUserSeries AS A
LEFT OUTER JOIN valoraciones_personales AS R
ON A.UserID = R.UserID
AND A.SeriesID = R.SeriesID
WHERE
A.UserID = @UserID
棘手的一点是获取用户可能喜欢的所有系列的列表。为了做到这一点,我会做一个交叉连接以获得可能存在的所有排列,然后使用Nz从那里连接到评级表,以便根据需要处理空值。
*对不起有点组成其他列名称我更容易使用英语希望没关系:D