我正在尝试这样做,以便下面的查询对另一个表中具有用户名的行进行计数。统计表中每个用户名有 1 行,但 pvp 表中的用户名有多个行。从 pvptable 连接的所有列都显示为空,以及使用 COUNT 动态生成的杀戮和死亡人数。这是 SQL 查询。
SELECT
*,
pvptable.username AS USER,
COUNT(pvptable.killer) AS kills,
COUNT(pvptable.username) AS deaths,
ROUND(
COUNT(pvptable.killer) / COUNT(pvptable.username),
2
) AS kd
FROM
stats AS st
LEFT JOIN pvp AS pvptable
ON pvptable.killer = "Username"
AND pvptable.username = "Username"
WHERE st.username = "Username" ;
最佳答案
您正在混合 where
和 join
条件:
- 当您想要将一个表的字段与另一个表的字段关联时,可以使用
join
- 当您想要过滤表的数据时,可以使用
where
因此,为了使您的查询有效:
SELECT
*, pvptable.username as user,
COUNT(pvptable.killer) as kills,
COUNT(pvptable.username) as deaths,
ROUND(COUNT(pvptable.killer) / COUNT(pvptable.username), 2) AS kd
FROM
stats as st
LEFT JOIN pvp as pvptable
ON pvptable.killer=st.Username -- Add some other relations if you need them
WHERE
st.username="Username";
关于php - MySQL LEFT JOIN 列为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21195815/