也許我爲什麼找不到解決方案是因爲我不知道我在找什麼!希望我可以解釋一下足夠的答案。我有3個表格(1個視圖和2個表格)。該視圖具有我需要的所有細節,我們稱之爲用戶表。表2 & 3包含用戶的最後一次登錄(2個獨立系統)。我希望結果集在視圖中顯示每個用戶,並且每個表的最後一次登錄2 & 3.我在僱員ID上匹配。我遇到的問題是表2 & 3沒有列出每個員工ID,因爲他們從未登錄過。因此,如果我內部連接表1 & 2,結果集不會顯示視圖中的所有用戶,只是匹配的用戶。但是,我需要返回視圖中的所有用戶,並且如果用戶從未登錄(員工ID不在表2中),請將其填入空白或任何其他文本。從多張表格返回空結果
0
A
回答
1
請勿使用INNER
連接。改用OUTER
加入
例如(表和列名都是虛構..)
SELECT
u.*, t1.logindate, t2.logindate
FROM
usertable u
LEFT OUTER JOIN table1 t1 ON u.id = t1.uid
LEFT OUTER JOIN table2 t2 ON u.id = t2.uid
內部連接返回行只有當兩個表中至少有一行匹配連接條件。 內部連接消除與其他表中的行不匹配的行。
外連接,但是,從FROM子句中提到的表或視圖中的至少一個返回所有行,只要這些行符合任何WHERE或HAVING搜索條件。
從左外部連接引用的左表中檢索所有行,右外部連接中引用右表中的所有行。兩個表中的所有行都在完整的外連接中返回。
0
你要找的是所謂left outer join.
事情是這樣的:
select u.*, s1.*, System2Login.*
from users u
left outer join System1Login s1 on u.EmployeeID = s1.EmployeeID
left outer join System2Login s2 on u.EmployeeID = s2.EmployeeID
應在users
表中返回所有行,從系統1和系統2的數據(如果有的話) 。
0
SELECT <whatever columns you need>
FROM Table1 t1
LEFT OUTER JOIN Table2 t2
ON t1.employeeID = t2.employeeID
LEFT OUTER JOIN Table3 t3
ON t1.employeeID = t3.employeeID
0
您正在描述什麼是「外連接」。使用LEFT OUTER JOIN
(或RIGHT)而不是INNER JOIN
,即使第二個表中沒有匹配,第一個表的結果也會出現。
相關問題
- 1. 返回空結果?
- 2. 從多個表中選擇返回空結果
- 3. 從單一的表中返回結果由我多少結果
- 4. 結果從codeigniter模型返回空
- 5. 空白表返回mysql_num_rows($結果)= 1
- 6. mysqli_query()返回整個表的空結果
- 7. TAPI lineGetCallInfo返回空結果
- 8. PHP bind_result返回空結果
- 9. XMLPullParser返回空白結果
- 10. .split()返回空結果
- 11. ActiveRecord paginate返回空結果
- 12. php結果返回空
- 13. LDAPContext.search()返回空結果
- 14. ajax返回空結果ie10
- 15. PDO返回空結果
- 16. scrapy mysql返回空結果
- 17. Spacy返回空結果
- 18. urllib.read()結果返回空值
- 19. SCardGetCardTypeProviderName返回空結果
- 20. AlAssetLibrary返回空結果
- 21. .getField()返回空結果
- 22. pdo cassandra返回空結果
- 23. NodeJs Mysql返回空結果
- 24. 在表格提交後返回結果
- 25. 正則表達式格式返回空結果 - C#
- 26. 返回從一行多個結果
- 27. 從方法中返回多個結果
- 28. 從.next()返回多個結果() - jQuery
- 29. 通過Spring JdbcTemplate連接多個表返回空結果
- 30. 返回多個json結果
賓果!奇蹟般有效 – user1188241