获取sql表中每个字段的名称

获取sql表中每个字段的名称,sql,postgresql,select,relational-database,Sql,Postgresql,Select,Relational Database,我试图做一个简单的查询,但我不能得到想要的结果 我有一张有两个参考id的桌子。我想要的是在一行中,每个英雄的名字基于另一个表英雄 战争 身份证 hero1_id hero2_id 英雄 身份证 名字 我正在做这个查询 SELECT battle.character1_id as p1, character.name, battle.character2_id as p2, character.name FROM battle, character WHERE

我试图做一个简单的查询,但我不能得到想要的结果

我有一张有两个参考id的桌子。我想要的是在一行中,每个英雄的名字基于另一个表英雄

战争
  • 身份证
  • hero1_id
  • hero2_id
英雄
  • 身份证
  • 名字
我正在做这个查询

SELECT 
  battle.character1_id as p1,
  character.name,
  battle.character2_id as p2,
  character.name
FROM 
 battle, 
 character 
WHERE 
 character.id in (character1_id, character2_id)
但我在战斗中得到了两排。我知道我做错了什么,但我不知道是什么


您需要在
英雄
表中加入两次
战斗
,每次一次:

SELECT h1.id AS id1, h1.name AS name1, h2.id AS id2, h2.name AS name2
FROM   battle b
JOIN   hero h1 ON h1.id = b.hero1_id
JOIN   hero h2 ON h2.id = b.hero2_id

答案正确,但我建议
左加入
,以防一场战斗只有一个英雄。