首頁  >  問答  >  主體

從第一個表中提取數據,使用第二個表中的數據

首先,我找不到合適的問題名稱,如果有人能找到更好的名稱,如果他們編輯,我將非常感激。我是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粉885035114P粉885035114406 天前414

全部回覆(1)我來回復

  • P粉071626364

    P粉0716263642023-09-11 10:50:30

    我認為你需要在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

    回覆
    0
  • 取消回覆