MySQL我需要表X中的一行来返回表Y中的一行

时间:2013-01-26 17:30:33

标签: mysql

所以我有两张桌子:

包含所有玩家的'玩家'表:

Players | stuff1| stuff2
----------------------------
1       | x1   | y1
2       | x2   | y2
3       | x3   | y3
...     | ... | ...

等等

然后我有我的'禁令'表,其中包含哪些人被禁止:

Id | Players
------------
1  | 2
2  | 5

现在,关于“禁令”的内容如何出现,应该说占据“玩家”牌桌索引2和5的玩家将被禁止。

我需要的是一种让我做'SELECT禁止WHERE id = 1'的方法,它会在'玩家'中返回玩家2,如{2,x2,y2}  而且我不知道我会怎么做。

非常感谢帮助!

编辑:对不起,我的格式有点狂暴。现在应该是可读的!

4 个答案:

答案 0 :(得分:1)

如果你需要所有被禁止的球员

select p.* from players p, banned b where p.Players = b.Players

答案 1 :(得分:1)

您想要加入:

select playersTable.* from banTable
inner join playersTable on banTable.players = playersTable.players
where banTable.id = 1

您应该将players列重命名为其他内容。此列的单元格不包含播放器,而是播放器ID。我会将其重命名为player_id

答案 2 :(得分:0)

我认为你需要这个::

Select Players from Table where ID=? /*2 in this case*/

答案 3 :(得分:0)

你需要从玩家中拉出玩家并显示谁被禁止了吗?

SELECT Players.*, CASE WHEN Banned.Players IS NOT NULL THEN 'YES' ELSE NO END AS [Banned] 
FROM Players
LEFT JOIN Banned ON Players.Players = Banned.Players

这将返回所有玩家,并指示哪些玩家被禁止。