【问题标题】:mysql JOIN when one table has no entry当一个表没有条目时mysql JOIN
【发布时间】:2012-09-17 10:49:53
【问题描述】:

我有两张桌子:

具有 player_id 和名称的玩家

带有 player_id 和 team_id 的团队

并非所有玩家都有球队参赛资格。

我正在尝试创建一个查询,在给定 player_id 的情况下,如果在 team 表中找到 player_id,将返回名称和 null。

我尝试了各种 JOIN,但我得到的是 null、null 或在表中找到的第一个 team_id 的名称。

感谢您的帮助

【问题讨论】:

  • LEFT JOIN 应该这样做
  • 请提供两张表(球员和球队)的样本数据。
  • 是的,谢谢。我以为我试过了,但一定是用错了。

标签: mysql join null


【解决方案1】:

这样做

SELECT p.PlayerID, t.PlayerID
FROM Player p
LEFT JOIN Team t
ON p.PlayerID = t.PlayerID

如果您希望返回 null,请选择 t.PlayerID,因为 p.PlayerID 如果存在于 Player 中,则不会为 null

您的结果将如下所示

PlayerID   Player Name    TeamID    PlayerID
-------------------------------------------------
0001       John           NULL      NULL

如您所见,第二个 PlayerID 为 NULL 而不是第一个。选择第二个,例如WHERE t.PlayerID IS NULL

【讨论】:

    猜你喜欢
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多