0

私は2つの異なるテーブルを持っています。1つはマッチ、もう1つはプレーヤーです。(テーブルから)とname(から)を返すサブクエリを実行しようとしています。どちらか一方を返すことはできますが、両方を返すことはできません。playersmatchnomatches

また、一部のクエリでエラーが返されます (workbench 6.0 の場合)

エラー コード: 1242。サブクエリが複数の行を返す

皮肉は私を殺している =)

これに関する私の論理は、正規化を使用しようとしていますplayerno

すなわち:

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

これは、players テーブルから名前だけを返します。私は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 に答える