Folks, 所有我期望的是擴展INNER JOIN。讓我談談點。我有兩個表部門& Emp。一個部門可以有多個Emp的&而不是其他方式。SQL INNER JOIN僅在第一次匹配時返回父行值
Table Dept Dept_id Dept_Name 1 IT 2 HR 3 Other Table Emp Emp_id Dept_id Emp_Name 11 1 John 12 1 Jill 13 2 Jack 14 3 Jared 15 1 Jim 16 1 Jarret 17 2 Jacob I need to JOIN it on Dept_id Expected Results Dept_id Dept_name Emp_id Emp_Name 1 IT 11 John NULL NULL 12 Jill NULL NULL 15 Jim NULL NULL 16 Jarret 2 HR 13 Jack NULL NULL 17 Jacob 3 Other 14 Jared
希望我傳達了我想要的東西。它只是一個常規的內部加入的外鍵約束。但是,我希望第一個表(Dept)中的值是NULL-ed,除了第一個匹配。話雖如此,我不在乎第一場比賽是什麼。請看下面 - 只是Dept_id 1的結果。
Expected Results (Only for Dept_id = 1) It could be Dept_id Dept_name Emp_id Emp_Name 1 IT 11 John NULL NULL 12 Jill NULL NULL 15 Jim NULL NULL 16 Jarret OR Dept_id Dept_name Emp_id Emp_Name 1 IT 15 Jim NULL NULL 12 Jill NULL NULL 11 John NULL NULL 16 Jarret OR Two other possibilities.
在此先感謝。儘管它是一個簡單的例子,但對於很長的解釋抱歉。
你會嘗試左連接嗎? – DevelopmentIsMyPassion 2013-02-08 17:24:25
左連接不會得到他們正在尋找的結果。看起來更像他們試圖對結果進行分組,並且只允許Dept_id和Dept_name中每個部門的第一個匹配的值。我很好奇你爲什麼要這麼做,因爲這會讓數據顯示吉爾吉姆和賈瑞特沒有任何部門。正確的做法是獲得所有列中的值,並處理代碼中用於顯示結果的格式。隨着所要求的內容,如果你改變客戶端上的排序,你將有不可讀的數據 – TimWagaman 2013-02-08 17:29:16
你是對的。這是一個瘋狂的查詢。我正在嘗試做一個我的應用程序應該做的部分。但是,我確信有一種方法可以通過查詢來完成並且想知道這一點。感謝評論。 – Yogi 2013-02-08 17:51:56