0

我有 2 个不同的表,一个是匹配的,另一个是玩家,我正在尝试运行一个返回name(从players表)和matchno(从matches)的子查询。我可以让它返回一个或另一个,但不能同时返回。

我的一些查询也返回错误(在工作台 6.0 中)

错误代码:1242。子查询返回多于 1 行

具有讽刺意味的是要杀死我=)

我对此的逻辑是尝试使用规范化,即playerno.

IE:

select name 
from players
where playerno in 
(select matchno 
from matches
group by matchno)  

这仅返回玩家表中的名称。我对 MySql 还很陌生,并且已经浏览了我的书和互联网,但我仍然把我的头撞在墙上,任何帮助将不胜感激!!!提前致谢

我找到了通过使用连接和子查询工作的查询:

    select m.matchno, p.name
    from (matches as m inner join players as p
    on m.playerno = p.playerno)
4

1 回答 1

0

我认为您只需在查询中加入表即可。如果你有这样的事情:

   players table
id     name
 1      P1
 2      P2

   matches table
idm   idplayer    match
 1       1          blah
 2       1          bleh
 3       2          fly

获取比赛和球员的查询将是

 select players.id, 
        players.name, 
        matches.match
   from players, 
        matches 
  where playes.id = matches.idplayer
于 2013-10-18T18:19:45.010 回答