0

我有这张桌子

追踪

  • ID
  • 推荐人
  • 地位
  • 会议

我想为两个表计算行数(与自身连接)

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 但也不起作用。

4

1 回答 1

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它来确保从左表 ( ) 中获取所有行。t1t2

于 2013-11-14T03:19:14.817 回答