MySql Join 给我留下了一张空表

标签 mysql sql join

我进行了一个查询,列出了我网站中每个俱乐部的所有球队的所有球员。

“俱乐部”有“球队”,每个球队都有“球员”,我使用以下查询解决列表:

SELECT
        Club.*,
        Teams.*,
        Players.*
    FROM
        (Club LEFT JOIN Teams ON Club.idClub = Teams.idClub)
        LEFT JOIN
        Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias
    WHERE
        Teams.idTemporadas = 2017

效果很好,现在我只想列出其他表“hasPlay”中“已玩过”的玩家,我做了此更改,但它返回空:

SELECT
        Club.*,
        Teams.*,
        Players.*,
        HasPlay.*
    FROM
        ((Club LEFT JOIN Teams ON Club.idClub = Teams.idClub)
        LEFT JOIN
        Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias) LEFT JOIN HasPLay ON Players.idPlayer = HasPlay.idPlayer
    WHERE
        Teams.idTemporadas = 2017

我想我在上次连接中搞砸了......

任何建议都会受到欢迎

最佳答案

我怀疑你原来的查询是否有效

因为它包含各种错误和异常

无论如何你应该避免无用的()

特别是在 Equipos_Categorias 表上使用 JOIN,例如:

  SELECT
      Club.*,
      Teams.*,
      Players.*,
      HasPlay.*
  FROM  Club LEFT JOIN Teams ON Club.idClub = Teams.idClub
  LEFT JOIN   Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias
  LEFT JOIN HasPLay ON Players.idPlayer = HasPlay.idPlayer
  INNER JOIN Equipos_Categorias  ON Teams.idEquipos_Categorias =  Equipos_Categorias.idEquipos_Categorias 
          and  Equipos_Categorias.idTemporadas = 2017
  ORDER BY Club.nombre, Equipos_Categorias.idEquipos_Categorias ASC,
      Jugadores_Equipos.categoriaJugador ASC, Jugadores_Equipos.nombre ASC

并由 OP uisng 团队表验证

  SELECT
      Club.*,
      Teams.*,
      Players.*,
      HasPlay.*
  FROM  Club LEFT JOIN Teams ON Club.idClub = Teams.idClub
  INNER JOIN   Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias and team.idTemporadas = 2017
  LEFT JOIN HasPLay ON Players.idPlayer = HasPlay.idPlayer
  ORDER BY Club.nombre, Equipos_Categorias.idEquipos_Categorias ASC,
      Jugadores_Equipos.categoriaJugador ASC, Jugadores_Equipos.nombre ASC

关于MySql Join 给我留下了一张空表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47498177/

相关文章:

MySQL 将产品与类别树连接起来,即使类别为空

MySQL 结合外连接

java - MySQL 列 'FullName' 不能为空

php - 当我真正期待一个合并行时,MySQL 和 INNER JOIN 返回了 2 行

PHP - 无法从数据库检索数据

sql - 从(微笑)字符串而不是元素列表中查找字母

python - 检查列表中的每个值是否存在于单个查询中给定的 Django 模型表中

mysql - 声明的变量的默认值总是 null 吗?

php - 从表单向数据库表插入多行

php - 在一个查询中从多个表中删除数据