我有这张桌子
跟踪
我想要为两个表(自己加入)的COUNT行
SELECT COUNT(t1.id), COUNT(t2.id)
FROM tracking t1
INNER JOIN tracking t2 on t2.session = t1.session AND t2.status = 2
WHERE t1.referer = 'http://google.com' AND t1.status = 1
有这些数据:
id | referer | status | session
1 | http://google.com | 1 | ABC
2 | ################# | 2 | ABC
我需要得到(1,1)但我得到(1,null)
我尝试使用RIGHT JOIN,但也没有工作。
答案 0 :(得分:2)
使用LEFT JOIN
代替INNER JOIN
:
SELECT COUNT(t1.id), COUNT(t2.id)
FROM tracking t1
LEFT JOIN tracking t2 on t2.session = t1.session AND t2.status = 2
WHERE t1.referer = 'http://google.com' AND t1.status = 1;
t1
是“左”表,t2
是“右”表。您希望使用LEFT JOIN
确保从左表(t1
)获取所有行,无论右表(t2
)中是否存在匹配项。