![](/img/trans.png)
[英]How to get all records from one table and only records from joined table with criteria
[英]How can I get all records from one table, even if there are no corresponding records in the JOINed table?
我有一個[Users]
表,此示例已簡化:
uID | uName | uSalesRep
----+-------+----------
1 | John | 1
2 | Bob | 1
3 | Fred | 1
4 | Stu | 1
和銷售表[Activity]
:
aID | aDate | aUserID | aText
----+------------+---------+---------------
1 | 2013-10-09 | 1 | John did stuff
2 | 2013-10-14 | 2 | Bob did stuff
3 | 2013-10-17 | 3 | Fred did stuff
我想獲取所有銷售代表的清單,以及他們在2013年10月14日開始的一周的活動,而我正在嘗試這樣做:
SELECT uID, Name, aID, aDate, aText
FROM [Users]
LEFT JOIN [Activity] ON uID = UserID
WHERE (aDate >= '2013-10-14' OR aDate = NULL)
AND (aDate <= '2013-10-18' OR aDate = NULL)
AND uSalesRep = 1
我使用了LEFT JOIN
希望檢索所有代表,但是我認為這已被aDate
要求所aDate
。 包括aDate = NULL
包括完全沒有活動的代表,但是活動超出指定范圍的代表將被忽略。
無論他們記錄了什么活動,如何至少獲得一次所有代表?
謝謝你的時間。
當過濾器應用於聯接表時,您需要將過濾器放在join
,而不是在where
子句中
SELECT uID, Name, aID, aDate, aText
FROM [Users]
LEFT JOIN [Activity] ON uID = UserID
AND (aDate >= '2013-10-14')
AND (aDate <= '2013-10-18')
WHERE uSalesRep = 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.