从第一个表中提取数据,使用第二个表中的数据
P粉885035114
P粉885035114 2023-09-10 12:00:30
0
1
455

首先,我找不到合适的问题名称,如果有人能找到更好的名称,如果他们编辑,我将非常感激。我是SQL的新手,我有以下问题:我有两个表如下

Member -> Name,UID(主键),SupervisorUID。 WorkPlace -> WP_UID(主键),Name,SupervisorUID。

我需要创建一个查询,返回在WorkPlace 'X'中工作的成员的姓名以及他们的上级的姓名。

我尝试使用内连接,但我无法实现我想要的结果。主要问题是,我如何通过WorkPlace名称选择,并获取成员姓名和上级姓名。

上级也是一个成员,所以,WorkPlace.SupervisorUID应该与Member.UID匹配

SELECT Member.Name, Y
INNER JOIN WorkPlace on WorkPlace.SupervisorUID = Member.UID
WHERE WorkPlace.Name = 'France'

我需要找到在Y上放什么。

我需要找到如何通过从工作场所获取uid,然后进入成员表,找到与该主管uid匹配的uid并获取姓名的方法。

Member
Jeremy 123 421
Jack 421 421
WorkPlace
1 France 421

我想返回以下表格,

Jeremy Jack

P粉885035114
P粉885035114

全部回复(1)
P粉071626364

我认为你需要在Member中添加WP_UID作为一列。我不确定mysql的语法是否相同,但是如果你在Member中添加WP_UID,以下代码在MS SQL Server中可以工作:

SELECT M1.Name, M2.Name
  FROM Member AS M1
  INNER JOIN WorkPlace AS WP on WP.WP_UID = M1.WP_UID
  INNER JOIN Member AS M2 on M2.UID = M1.SupervisorUID
  WHERE WP.Name = 'France' AND M1.UID <> M1.SupervisorUID

我添加了M1.UID<>M1.SupervisorUID以便不显示主管。

你也可以从Member中删除SupervisorUID并使用以下代码:

SELECT M1.Name, M2.Name
  FROM Member AS M1
  INNER JOIN WorkPlace AS WP on WP.WP_UID = M1.WP_UID
  INNER JOIN Member AS M2 on M2.UID = WP.SupervisorUID
  WHERE WP.Name = 'France' AND M1.UID <> WP.SupervisorUID
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板