2012-03-12 4 views
6

У меня есть 2 стола, сотрудники и отделы.Соединительные столы, внешний ключ

отделов - идентификатор, универмаги

сотрудников - ID, department_id, имя, и куча еще здесь.

так employees.department_id является внешним ключом к departments.id

Мне нужно, чтобы показать сотрудникам таблицы, но вместо DEPARTMENT_ID (с указанием идентификаторов отделов), мне нужно, чтобы показать фактические отделы, поэтому в место department_id, мне нужно разместить отделы.департамент

Возможно ли это? Вот картина того, что я хочу. http://oi44.tinypic.com/xgdyiq.jpg

PS: друг сказал мне использовать соединение, но я не уверен ..., вы можете увидеть мой запрос на картинке.

ответ

10

Ваш друг сказал вам правду: р

Вы просто должны использовать внутреннее соединение между вашими двумя таблицами:

SELECT d.name, e.name, e.email, ... FROM deparments d INNER JOIN employees e ON d.id = e.department_id. 

Вы должны адаптировать свое поле для получения нужного результата:

0

Вы не должны использовать SELECT * и просто берете поля, которые вам действительно нужны, только если вы хотите сделать снимок экрана из табличных значений.

Как SELECT department.name

0

Это должно покрыть его для вас:

SELECT 
    E.Id 
    , D.Department 
    , E.Name 
    -- More stuff 
FROM Employees E 
INNER JOIN Departments D 
    ON D.id = E.department_id 
0
SELECT employees.*, department.department 
FROM employees 
INNER JOIN department ON employees.department_id = department.id 
3
SELECT employees.id, employees.department_id, employees.name, departments.department 
FROM employees 
INNER JOIN departments ON employees.department_id = departments.id 
Смежные вопросы