Sql 基于多结果条件选择

Sql 基于多结果条件选择,sql,database,postgresql,Sql,Database,Postgresql,我试图在PostgreSQL 9.2中执行以下SQL语句,但失败并出现错误: SELECT "TrainingName" FROM "HSETrainingName" WHERE "ID" = SELECT "trainingID" FROM "HSEGroupedTraining" WHERE "groupID" =3 第二个select语句返回多个值。如何解决它?您可以在构造中使用: SELECT "TrainingName" FROM "HSETrainingName" WH

我试图在PostgreSQL 9.2中执行以下SQL语句,但失败并出现错误:

SELECT "TrainingName" FROM "HSETrainingName" WHERE "ID" = 
SELECT "trainingID" FROM "HSEGroupedTraining" WHERE "groupID" =3

第二个select语句返回多个值。如何解决它?

您可以在
构造中使用

SELECT "TrainingName" 
  FROM "HSETrainingName" 
 WHERE "ID" IN (SELECT "trainingID" 
                  FROM "HSEGroupedTraining" 
                 WHERE "groupID" = 3)

将子查询与中的一起使用:

SELECT "TrainingName" 
FROM "HSETrainingName" 
WHERE "ID" IN
(SELECT "trainingID" 
FROM "HSEGroupedTraining" 
WHERE "groupID" =3)

... 哪个PostgreSQL可能会转换为联接,这是形成查询的另一种方式—介于
HSETrainingName
HSEGroupedTraining
之间的内部联接。