为什么我的查询没有显示错误,但还有 returns 零行?
Why my query shows no errors, but also returns zero rows?
我编写此查询是为了获得与用户一样多的行 + 每个用户创建的潜在客户数 + 所有已转换的潜在客户。这是它的样子:
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential) p
ON p.FID_author = u.ID
JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential) pc
ON p.FID_author = u.ID AND pc.converted = 1
我正在尝试使用 不相关的子查询 作为 ,我可以将我的查询合并为 1。但是我得到 0 行。
我的表格如下所示:
用户:
+----+------+-------+
| ID | Name | Email |
+----+------+-------+
潜力:
+----+------+-------+------------+-----------+
| ID | Name | Email | FID_author | converted |
+----+------+-------+------------+-----------+
FID_author是外键,用户id。
我的查询返回 0 行并且没有显示错误。我做错了什么?
编辑
到目前为止我的查询:
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials
FROM os_potential GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials
FROM os_potential GROUP BY FID_author) pc
ON p.FID_author = u.ID
AND pc.converted = 1
GROUP BY u.ID
我得到的结果几乎符合预期,但问题是,cPotentials
每行包含 1,这是错误的。有很多然后只有1。可能是哪里的问题?
在子查询上缺少分组并最终使用左连接
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential
GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential
GROUP BY converted,FID_author) pc
ON pc.FID_author = u.ID AND pc.converted = 1
我编写此查询是为了获得与用户一样多的行 + 每个用户创建的潜在客户数 + 所有已转换的潜在客户。这是它的样子:
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential) p
ON p.FID_author = u.ID
JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential) pc
ON p.FID_author = u.ID AND pc.converted = 1
我正在尝试使用 不相关的子查询 作为
我的表格如下所示:
用户:
+----+------+-------+
| ID | Name | Email |
+----+------+-------+
潜力:
+----+------+-------+------------+-----------+
| ID | Name | Email | FID_author | converted |
+----+------+-------+------------+-----------+
FID_author是外键,用户id。
我的查询返回 0 行并且没有显示错误。我做错了什么?
编辑
到目前为止我的查询:
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials
FROM os_potential GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials
FROM os_potential GROUP BY FID_author) pc
ON p.FID_author = u.ID
AND pc.converted = 1
GROUP BY u.ID
我得到的结果几乎符合预期,但问题是,cPotentials
每行包含 1,这是错误的。有很多然后只有1。可能是哪里的问题?
在子查询上缺少分组并最终使用左连接
SELECT u.*, p.allPotentials, pc.cPotentials
FROM os_user u
LEFT JOIN (SELECT FID_author, count(*) allPotentials FROM os_potential
GROUP BY FID_author) p
ON p.FID_author = u.ID
LEFT JOIN (SELECT converted, FID_author, count(*) cPotentials FROM os_potential
GROUP BY converted,FID_author) pc
ON pc.FID_author = u.ID AND pc.converted = 1