1
这可能是一个简单的答案,但我一直在这个问题上,在过去的几天,和它开始把我发疯确定什么是一个多对多的关系
我有一个数据库多对多关系
------------- --------------------- ------------------- |Images | |user2img | |User | ------------- --------------------- ------------------- |imgID | |id | |UserID | |imgURL | |imgID | |UserName | |imgAv | |UserID | |UserEmail | ------------- --------------------- -------------------
user2img表指示允许用户查看哪个图像。
我试图确定一个SQL查询,它将列出每个图像(一次不重复)并告诉我指定的用户是否有权查看该图像。
所以输出一样,
(其中userid = '1')
---------------------------- |imgID | imgURL | access | ---------------------------- |1 | xxx | Yes | |2 | yyy | No | |3 | qqq | Yes | |4 | rrr | Yes | |5 | www | No | |6 | sss | Yes | etc... ----------------------------
感谢,
这也不会给我一个输出,使所有的用户没有ID为1(用户2,3,4,5,6,7,8等...以及想念imgs用户没有在user2img表中列出? –
是的,但在你的问题的例子中 - 如果没有在user2image表中映射,所有用户都不是这样的情况吗?如果UserId是** NOT **出现在表格中,那么用户无法访问该图像,对于否定问题没有其他解决方案。您可以将UNION重写为** left **或** right ** join,但它会是相同 - UserId为空的每个结果都将是user2image表中所有其他用户的图像。我认为您只需检查访问权限 - 如果使用** inner join **的*连接*存在。 – pasty