2013-04-29 102 views
2

我有兩個表格,分別是manageremployee。我已經成功地實現了employee表上的外鍵約束,並且一切似乎都正常工作。但是,每當我查詢數據庫以找出哪個經理分配給使用INNER JOIN的哪位員工時,它給我的結果僅限於我擁有的經理id的數量。例如,如果將2名特定員工分配給同一位經理,則它只會根據分配給同一位經理的員工名單給出一個結果。只有單個外鍵正在確認

我嘗試使用LEFT JOIN來查看我是否想要推動外國人實際上是否被插入。令我驚訝的是它給了我NULL列的結果,這些列顯式地具有與實際工作的外鍵相同的外鍵。對不起,如果你發現我的描述不清楚,因爲英語不是我的第一語言。然而,給你的是什麼我試着去解釋一個更好的主意,我的表如下所示

employee            Manager 
emploee ID | firstname | lastname | managerid   managerid |fname | lastname 
1    john  doe  1     1  gordon soo 
2    ian   lee  1     2  justin freeman 
3    faye  eva  2     3  sai  chow 

當我嘗試LEFT JOIN會發生什麼:

Employee name |lasttname | ManagerNAme 

john   doe   gordon 
ian   lee   NUll 

我曾嘗試和一個檢查是否WHERE條款兩個表都在INODB上,並具有相同的排序規則,但我似乎無法修復它。希望你能幫助。

+0

請出示您的查詢 – sashkello 2013-04-29 04:34:59

回答

0

據我瞭解的問題,你需要在表上簡單的JOIN。由於你不顯示你的查詢,很難說出了什麼問題。這可能是你想要什麼:

SELECT 
    e.firstname, e.lastname, m.fname 
FROM 
    Manager m  
    JOIN employee e ON e.managerid = m.managerid 
+0

SELECT employee.firstname,manager.firstname,employee.lastname FROM員工 INNER JOIN經理ON employee.id = manager.id – 2013-04-29 04:49:40

+0

什麼是員工。 id和manager.id?你的桌子裏沒有這些。 – sashkello 2013-04-29 04:53:26

+0

這正是我所做的,我敢肯定,我的systax是正確的,因爲它不給我任何錯誤。我的問題是,我得到的結果僅限於管理員ID的號碼。例如,如果兩個員工具有相同的經理,結果只顯示我一個,雖然我已經指定了員工二是也分配給同一經理 – 2013-04-29 04:53:27