2012-03-12 17 views
6

Tengo 2 tablas, empleados y departamentos.Unir tablas, clave externa

departamentos - Identificación, departamento

empleados - id, DEPARTMENT_ID, nombre, y un montón más aquí.

por lo employees.department_id es una clave externa a departments.id

que necesito para mostrar los empleados de mesa, pero en lugar de department_id (mostrando los ID de los departamentos) que necesito para mostrar los departamentos reales, por lo que en lugar de department_id, necesito ubicar departamentos. departamento

¿Esto es posible? Aquí hay una foto de lo que quiero. http://oi44.tinypic.com/xgdyiq.jpg

PD: un amigo me dijo que usara unirse pero no estoy seguro ..., puede ver mi consulta en la imagen.

Respuesta

10

Su amigo le dijo la verdad: p

Sólo tiene que utilizar unirse a un interno entre sus dos tablas como esta:

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

Debes adaptar tu campo para tener la salida deseada :)

0

No debe usar SELECT * y simplemente tome los campos que realmente desea si solo se trata de tomar una captura de pantalla de los valores de la tabla.

Como SELECT department.name

0

Esto debería cubrirlo en su caso:

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 
Cuestiones relacionadas