MySQL birden fazla (4) tabloları birleştirme

1 Cevap php

Ben veri katılmak ve almak istiyorum dört tablo var. Tablolar gibi bir şey bak ...

  • Çalışanlar (ÇalışanKimliği, Groupıd [fk ], EmployeeName, PhoneNum)
  • Pozisyonlar (PositionID, PositionName)
  • EmployeePositions (EployeePositionID, ÇalışanNo [fk ], PositionID [fk ])
  • EmployeeGroup (Groupıd, GroupName)

[fk] = foreign key

Ben (ÇalışanNo tarafından verilen) bir çalışan hakkında tüm bilgi verecektir bir sorgu oluşturmak istiyorum. Ben verilen çalışanların adı, pozisyon (lar), ve bir satır grubu döndüren bir sorgu istiyorum.

Ben katıldı dahil etmek gerektiğini düşünüyorum, ama ben sorguları biçimlendirmek için nasıl emin değilim. MySQL kılavuzu benim anlama ötesinde bir teknik olduğunu. Ben herhangi bir yardım için çok minnettar olacaktır.

1 Cevap

SELECT e.EmployeeID, e.EmployeeName, e.PhoneNum, 
       g.GroupName, GROUP_CONCAT(p.PositionName) AS Positions
FROM Employees e
  LEFT JOIN EmployeeGroup g ON g.GroupID = e.GroupID
  LEFT JOIN EmployeePositions ep ON ep.EmployeeID = e.EmployeeID
  LEFT JOIN Positions p ON p.PositionID = ep.PositionID
WHERE e.EmployeeID = 1
GROUP BY e.EmployeeID

Virgülle İade pozisyonları tek satırda dize ayrıldı.