0

guildmembersというテーブルからアクセス、ギルド、名前を取得しています

...および、 playersと呼ばれる別のテーブルのid、level、playerclass

これが私のSQLステートメントです:

SELECT guildmembers.access、guildmembers.guildid、guildmembers.name、players.id、players.level、players.playerclass
ギルドメンバー、プレイヤーから
guildmembers.name、players.playerclassによる注文

これが返されるものです。

これが私が必要なものです。

これを行う方法はありますか?

4

3 に答える 3

3

あなたがする必要があるのはjoinステートメントです。現在、両方のテーブルのすべての結果を表示するようにSQLに指示しています。一致する場所にのみ結果を表示する必要があります。このために、joinステートメントを使用します。

SELECT guildmembers.access, guildmembers.guildid, guildmembers.name, players.id, players.level, players.playerclass
FROM guildmembers join players on guildmembers.pid=players.id
ORDER BY guildmembers.name, players.playerclass

guildmembers.pidおよびplayers.idは両方のテーブルの共通フィールドであるため、これらのテーブルを結合します。

http://www.w3schools.com/sql/sql_join.asp

これを理解しやすくするために、両方のテーブルに共通のフィールド名を付けてください。その後、これを使用して参加でき、より理にかなっています。

それがあなたを助けることを願っています。

于 2013-03-07T09:33:32.110 に答える
1
SELECT gm.access as access, gm.guildid as guildid, gm.name as name, 
p.id as id, p.level as level, p.playerclass as playerclass
FROM guildmembers gm LEFT JOIN players p on gm.pid=p.id
ORDER BY gm.name, p.playerclass
于 2013-03-07T09:40:56.567 に答える
1

SQLステートメントが正しくありません。試してください

SELECT guildmembers.access, guildmembers.guildid, guildmembers.name, players.id, 
players.level, players.playerclass from guildmembers left join players on guildmembers.pid = players.id order by guildmembers.name, players.playerclass
于 2013-03-07T09:36:18.550 に答える