2012-03-12 21 views
6

2 masa, çalışan ve departmanlarım var.Katılma tabloları, yabancı anahtar

bölümler - id, bölüm

çalışanı - id, department_id, adını ve daha burada bir demet.

öylesine employees.department_id i kadar, fiili bölümleri göstermek gerekir ben masa çalışanları göstermek gerekir, ancak bunun yerine department_id ait (bölümlerin kimliklerini göstererek)

departments.id için yabancı bir anahtardır bölüm_dizin yeri, departmanlara yerleştirmem gerekiyor.department

Bu mümkün mü? İşte istediğimin bir fotoğrafı. http://oi44.tinypic.com/xgdyiq.jpg

PS: Bir arkadaşım birleştirme kullanmamı söyledi ama emin değilim ..., sorgumu resimde görebiliyorsunuz.

cevap

10

Arkadaşınız size gerçeği anlattı Bu iki tablo arasında:

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

İstediğiniz çıktıya sahip olmak için alanınızı uyarlamanız gerekiyor :)

0

SELECT * kullanmamalısınız ve yalnızca tablo değerlerinin ekran görüntüsünü almak istiyorsanız gerçekten istediğiniz alanları alın. Bu sizin için kapsamalıdır

SELECT department.name

0

gibi: Sen sadece bir iç birleşim kullanmak zorunda p

:

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