usertable
----
id, username
grouptable
----
id, groupname
group_user
--------
uid, gid
books
----
id, groupname
输入参数:groupname,username
输出:书籍清单
当用户名在groupname
中时,是否可以使用1 sql语句获取书籍列表问题2:任何推荐掌握复杂sql语句的好书..
答案 0 :(得分:1)
此查询按用户参数列出了书籍
SELECT b.id,
FROM usertable u
INNER JOIN group_user gu ON gu.uid = u.id
INNER JOIN grouptable g ON g.id= gu.gid
INNER JOIN books b ON b.groupname = g.groupname
WHERE u.username = @user_name
此外,我认为如果你有团体名称,你可以使用
SELECT b.id,
FROM grouptable g
INNER JOIN books b ON b.groupname = g.groupname
WHERE g.groupname = @group_name
总线选择了这两个参数我觉得不是很好思考。这个查询将得到 用户组名称的书籍列表
SELECT b.id,
FROM usertable u
INNER JOIN group_user gu ON gu.uid = u.id
INNER JOIN grouptable g ON g.id= gu.gid
AND g.group_name = @group_name
INNER JOIN books b ON b.groupname = g.groupname
WHERE u.username = @user_name