【发布时间】:2014-03-10 05:07:48
【问题描述】:
我想动态创建 join 查询,其中包含以下表格:
表1)userTable:包含userId、userFirstName、userLastName
表2)groupTable:包含groupId、groupName、groupDescription
表 3) userGroup : 包含 userTable 和 groupTable 之间的关系
表 4) groupRoles:包含 groupId 和 roleId 之间的关系(任意随机列)
案例 1:
如果我想知道 groupId 在哪些表中存在/常见,它会给出这样的结果
查询:
我有 1 个仅接受 userId 的表单。通过使用 userId,我们必须找到:userId、userFirstName、userLastName 和 groupName。
问题:
问题是在为join 子句创建动态查询时。
与案例 1 一样,表有 2 个选项:groupRoles 或 userGroup。
那么我将如何知道从这两个选项中动态选择哪个表,以便通过关系表(在我的情况下是 userGroup 表)将我带到 groupTable? 就我而言,我必须找到 userId、userFirstName、userLastName 和 groupName。
我可以从 userTable 中获取 userId、userFirstName 和 userLastName。但是要获取 groupTable 中存在的 groupName 列,我们必须获取 userGroup 表的关系以获取 join 查询。
那么我们如何动态地知道要从 tableNames 中选择哪个表(如 case1),以便我们可以从查询中获取 GroupName 列?
【问题讨论】:
-
您希望将以下字段显示为:Userid、Userfirstname、Userlastname 和 groupname
标签: sql sql-server relational-database