我正在处理两个表 - users
行约2千万行,data
行约20亿行。
我需要选择users
所有active=1
行,然后将其加入data
和users.username=data.username
所在的data.date='2017-11-30'
行。
问题在于,其中许多用户没有data
行date='2017-11-30'
,但我仍然需要返回他们的记录,只是没有该日期的任何信息。
实现这一目标的最具资源效率的方法是什么?我有一个开始,但它看起来不太正确:
SELECT users.username FROM users
INNER JOIN data ON data.username = users.username
WHERE
users.active = 1 AND data.date = ‘2017-11-30’
答案 0 :(得分:1)
听起来你可以做一个左连接:
SELECT *
FROM users LEFT OUTER JOIN data
ON data.username = users.username AND data.date = '2017-11-30'
WHERE
users.active = 1