0

我有三个表,我只列出重要的列

db_players

编号 | 姓名

球员

编号 | 团队ID | 职业生涯

db_teams

db_teams id 链接到玩家 teamid。

我需要运行一个查询,我从 db_players 中选择行,只要 db_teams.id 不在玩家中作为 teamid 连续,其中职业 ID = 1。

我以前从未尝试过用 mysql 进行这种类型的查询,我知道我可以做两个查询并涉及 php,但我对纯 db 查询是否可能很感兴趣。

谢谢。

编辑 - 现在更简单了。

SELECT dp.first_name
FROM tbl_foot_career_db_players dp
INNER JOIN tbl_foot_career_players p
ON p.playerid != dp.id
WHERE p.careerid = 1

这个想法是我想返回 tbl_foot_career_db_players 中的所有行,其中该表中的 id 在 playerid 列中的 tbl_foot_career_players 的一行中不存在。并且 tbl_foot_career_players.careerid 也必须等于 1。

4

2 回答 2

1

尝试使用 db_players id 加入他们,该 id 不在玩家 teamid 中。

SELECT db_players.* FROM db_players
LEFT JOIN players ON players.id != db_players.id 
LEFT JOIN db_teams ON players.teamid = db_teams.id
WHERE careerid = 1
于 2013-08-10T10:42:50.287 回答
1

列出所有不在职业 = 1 的玩家中的 db_players

SELECT d.*
FROM db_players d
LEFT JOIN players p
  ON p.player_id = d.id
  AND p.career = 1
WHERE p.id IS NULL
于 2013-08-10T10:45:50.517 回答