2012-03-12 24 views
6

Mam 2 tabele, pracowników i działów.Łączenie tabel, klucz obcy

działy - id, departament

pracowników - ID, department_id, nazwa, a kilka więcej tutaj.

tak employees.department_id jest kluczem obcym do departments.id

muszę pokazać pracownikom stole, ale zamiast department_id (widocznych identyfikatory działów) muszę pokazać rzeczywiste działy, a więc w miejsce department_id, muszę umieścić departamenty. Apartament

Czy to możliwe? Oto obraz tego, co chcę. http://oi44.tinypic.com/xgdyiq.jpg

PS: znajomy polecił mi dołączyć, ale nie jestem pewien ..., możesz zobaczyć moje zapytanie na zdjęciu.

Odpowiedz

10

Znajomy powiedział wam prawdę: p

Po prostu trzeba użyć sprzężenia wewnętrznego między dwiema tabelami:

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

Musisz dostosować swoje pole, aby uzyskać pożądaną wydajność :)

0

Nie powinieneś używać SELECT * i wybieraj pola, które naprawdę chcesz, jeśli chcesz zrobić zrzut ekranu z wartościami tabeli.

Jak SELECT department.name

0

To powinno pokryć go dla Ciebie:

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