php - MySQL LEFT JOIN 列为空

标签 php mysql sql left-join

我正在尝试这样做,以便下面的查询对另一个表中具有用户名的行进行计数。统计表中每个用户名有 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" ;

最佳答案

您正在混合 wherejoin 条件:

  • 当您想要将一个表的字段与另一个表的字段关联时,可以使用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/

相关文章:

php - 发出 POST 请求时,Laravel WebSocket 出现 Pusher 错误

使用 cookie 的 PHP 主题切换器

sql - MySQL 高级选择帮助

sql - 如何创建考虑匹配的查询,即使它有两个不同的字母

php - 是否可以使用 Codeigniter Active Record 更新 JOINed 表?

php - 根据用户角色向 WooCommerce 订单号添加前缀

mysql - rails window 问题

php - Yii uuid 模型保存为主键返回 null

sql - 如何查找在 MySQL 中插入/删除的行数

sql - 使用和不使用连接的查询性能