第二条记录可能不存在时使用JOIN

时间:2017-11-30 21:54:56

标签: mysql inner-join

我正在处理两个表 - users行约2千万行,data行约20亿行。

我需要选择users所有active=1行,然后将其加入datausers.username=data.username所在的data.date='2017-11-30'行。

问题在于,其中许多用户没有datadate='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’

1 个答案:

答案 0 :(得分:1)

听起来你可以做一个左连接:

SELECT * 
FROM users LEFT OUTER JOIN data 
  ON data.username = users.username AND data.date = '2017-11-30'
WHERE
users.active = 1