Rumah  >  Soal Jawab  >  teks badan

Ekstrak data daripada jadual pertama, menggunakan data daripada jadual kedua

Pertama sekali, saya tidak dapat mencari nama yang sesuai untuk soalan itu, jika ada yang dapat mencari nama yang lebih baik, saya akan sangat berterima kasih jika mereka mengeditnya. Saya baru menggunakan SQL dan saya mempunyai soalan berikut: Saya mempunyai dua jadual seperti berikut

Ahli -> Nama, UID (kunci utama), SupervisorUID. Tempat Kerja -> WP_UID (kunci utama), Nama, SupervisorUID.

Saya perlu membuat pertanyaan yang mengembalikan nama ahli yang bekerja di WorkPlace 'X' dan nama atasan mereka.

Saya cuba menggunakan inner join tetapi saya tidak dapat mencapai hasil yang saya inginkan. Soalan utama ialah, bagaimana saya boleh memilih mengikut nama WorkPlace dan mendapatkan nama ahli dan nama atasan.

Penyelia juga ahli, jadi WorkPlace.SupervisorUID harus sepadan dengan Ahli.UID

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

Saya perlu mencari apa yang perlu diletakkan pada Y.

Saya perlu mencari cara untuk mencari uid yang sepadan dengan uid penyelia itu dan mendapatkan nama dengan mendapatkan uid dari tempat kerja dan kemudian pergi ke meja ahli.

Member
Jeremy 123 421
Jack 421 421
WorkPlace
1 France 421

Saya nak kembalikan borang berikut,

Jeremy Jack

P粉885035114P粉885035114406 hari yang lalu413

membalas semua(1)saya akan balas

  • P粉071626364

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

    Saya rasa anda perlu Member中添加WP_UID作为一列。我不确定mysql的语法是否相同,但是如果你在Member中添加WP_UID, kod berikut akan berfungsi dalam 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

    Saya tambah M1.UID<>M1.SupervisorUID supaya penyelia tidak ditunjukkan.

    Anda juga boleh bermula dari Member中删除SupervisorUID dan gunakan kod berikut:

    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

    balas
    0
  • Batalbalas