2014-09-03 35 views
0

我有三張學生,員工和學生的表格。 「員工和學生」中的「城市」一欄是一個整數,指的是城市中有許多城市的表格城市。加入SQL的問題

現在我想每個人在這個城市的人位於進員工和學生表的列表。

例如:

 
    Name    | City 
    --------------------------------- 
    James (Employee) | London 
    Jesus (Student) | London 
    Daniel (Employee) | Manchester 
+0

下一次顯示的截圖你的SQL代碼;) – Vland 2014-09-03 12:41:43

+1

爲什麼這次不 – SriniV 2014-09-03 12:42:03

+2

叫「城」的FK到城市桌不是一個好主意。它會更好「CityID」 – Vland 2014-09-03 12:44:17

回答

2
SELECT Name, 'Employee' AS 'Role', c.City 
FROM Employees AS e 
INNER JOIN Cities AS c ON e.City = c.id 
UNION ALL 
SELECT Student, 'Student' AS 'Role', c.City 
FROM Students AS s 
INNER JOIN Cities AS c ON s.City = c.id 

我還建議改變一些字段名:

  • 學生表:重命名StudentName
  • 學生表:重命名CityCityID
  • 表員工:重命名CityCityID
1

如何如下:

SELECT e.Name + '(Employee)', c.City 
FROM Employees e 
INNER JOIN Cities c ON e.City = c.id 
UNION ALL 
SELECT s.Student + '(Student)', c.City 
FROM Students s 
INNER JOIN Cities c ON s.City = c.id