我在使用以下查询时遇到一些问题 - 在所有情况下,我似乎只得到一小部分用户而不是整个列表.
我有以下两个表:
Users:
- UserId
- email
Updates:
- UserId
- Status
- LastUpdated
Run Code Online (Sandbox Code Playgroud)
我想要返回的是所有用户(来自用户)的列表,如果它今天更新的状态(基于LastUpdated字段),否则为BLANK,如果今天没有更新则为NULL.
我已经达到了这个目的:
SELECT users.userid,
updates.status
FROM users
LEFT JOIN updates
ON users.userid = updates.userid
WHERE Date(lastupdated) = Date(Now())
Run Code Online (Sandbox Code Playgroud)
您可以使用CASE语句仅updates.status在日期为今天时获取:
SELECT users.userId,
CASE WHEN DATE(LastUpdated) = DATE(NOW()) THEN updates.status ELSE NULL END AS status
FROM users
LEFT JOIN updates ON users.userId=updates.userId
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,如果您不需要该updates行中的任何其他内容,请执行以下操作:
SELECT users.userId, updates.status
FROM users
LEFT JOIN updates ON users.userId=updates.userId
AND DATE(LastUpdated) = DATE(NOW())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |