SELECT结果在一个表中,取决于同一个表中的另一个SELECT

时间:2014-12-09 10:44:55

标签: mysql sql

我有一张表如下:

`team_by_membre` (
  `id_team_by_membre` int(11) NOT NULL AUTO_INCREMENT,
  `id_membre` int(11) NOT NULL,
  `id_team` int(11) NOT NULL,
  `level` int(2) NOT NULL COMMENT)

在此表中,我试图列出由一个成员(经理)管理的团队成员的所有成员的列表。如果级别= 1(级别= 0玩家),团队由成员管理。澄清一下:在这张表中,你有很多队员和每个队员一个经理(等级= 1)。

找出我的经理管理的团队:

SELECT rm.id_team
    FROM team_by_membre rm
    WHERE rm.id_membre = ?
    AND rm.level = '1'

(在我目前的表中,其中一名成员正在管理3个团队)

但是如何列出此表中由该经理管理的团队成员中所有玩家(成员)的列表?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

SELECT
  *
FROM
  team_by_membre
WHERE
  id_team IN (
    SELECT
      id_team
    FROM
      team_by_membre
    WHERE
      id_membre = ?
    AND
      level = 1
  );

答案 1 :(得分:1)

使用连接应该比子查询更快并且非常简单:

SELECT t.*
FROM team_by_membre t
JOIN team_by_membre mgr
WHERE t.id_team=mgr.id_team
AND mgr.level = 1
AND mgr.id_membre = ?