2

と の 2 つのテーブルがmanagerありemployeeます。テーブルに外部キー制約を正常に実装することができemployee、すべてが正常に機能しているようです。ただし、 を使用してどのマネージャーがどの従業員に割り当てられているかをデータベースに照会するたびに、INNER JOIN得られる結果は私が持っているマネージャーの数に制限されidます。たとえば、特定の 2 人の従業員が同じマネージャーに割り当てられている場合、同じマネージャーに割り当てられている従業員のリストに関して 1 つの結果しか得られません。

LEFT JOIN実装したい外国語が実際に挿入されているかどうかを確認するために使用してみました。驚いたことに、NULL実際に機能している列と同じ外部キーを明示的に持つ for 列の結果が得られます。英語は私の第一言語ではないため、私の説明が不明確であると思われる場合は、事前に申し訳ありません. ただし、私のテーブルを説明しようとしていることをよりよく理解するために、次のようにします。

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上にあり、同じ照合順序を持っているかどうかを確認するだけでなく、句を試しましたが、修正できないようです。お役に立てれば幸いです。

4

1 に答える 1

0

私が質問を理解している限りJOIN、テーブルにはシンプルなものが必要です。クエリを表示しないため、何が問題なのかを判断するのは困難です。これはおそらくあなたが望むものです:

SELECT 
    e.firstname, e.lastname, m.fname
FROM
    Manager m    
    JOIN employee e ON e.managerid = m.managerid
于 2013-04-29T04:40:29.970 に答える