我有两张表说:用户和图书馆。图书馆包含以某种方式分类的书籍;用户也可以选择以某种方式对他的书进行分类。这两个表的结构(和样本数据)如下所示:
图书馆
bookid 位置
10 1
12 2
14 3
16 4
用户
userid bookid 位置
12669 12 1
12669 10 2
我想要一个查询来返回用户 12669 的所有书籍,按位置排序,即:
select bookid from user where userid = 12669 group by position
在它返回这些排序的书籍后,它应该返回图书馆中的其他 bookid(用户中不存在)。不应重复任何 bookid。这些场景的结果将如下所示:
12
10
14
16
换句话说:图书馆中的所有书籍都应该由这个查询返回,但是用户选择的书籍是根据 user.position 排序的,
我认为我可能需要某种连接语句。我试过:
从用户 u 中选择 bookid 右加入库 l on u.bookid = l.bookid where u.userid = 12669 group by u.position
但是,我得到一个语法错误。解决这个“问题”的最佳方法是什么?非常感谢。