2011-07-13 10 views
2

私はpgAdminのokですが、私がzendでそれを転送すると、常にエラーが表示されます:subquery must return only one column blah blah ..誰かが問題を識別できますか?サブクエリは1つのカラムだけを返す必要があります

SELECT "trail_history"."new_audit_trail".*, 
     (SELECT "admin".list_category_values_new."values" 
      FROM "admin".list_category_values_new 
      WHERE CAST(seq AS character varying) = "trail_history"."new_audit_trail"."current_value" 
      AND "name" = "trail_history"."new_audit_trail"."name") as "values" 
    FROM "trail_history"."new_audit_trail" 
    WHERE (capno LIKE '12101062411001%') 
    AND (recon = '0') 
ORDER BY "date_happened" DESC 

答えて

1

あなたのサブ選択は、( "管理者" .list_category_values_new。 "の値を" SELECT ...)複数の行を返すのを防ぐ何もしています。 1つのレコードのみがサブセレクトから出るようにするには、TOP 1またはMAXなどを使用する必要があります。

メイン・セレクトの各レコードが異なる単一の値を持つようにサブクエリを関連付けることができますが、サブ・セレクトを使用する場合は、メイン・アウトプットの1行につき1行しか戻せません選択します。

+1

ここでの混乱。エラーは、サブクエリが1つの*カラム*のみを返すが、複数のカラムを選択するということです。しかし、あなたは正しいです。それはここで使用される方法で1行だけを返すこともできます。列エラーが訂正されると、行エラーが次に発生します。 –

+0

私は@ OPの質問に用語に軽微な誤りがあると仮定しました。明らかに、指定されたサブクエリは1つのカラムのみを返します。しかし、明らかに複数の行の可能性が問題になります。 –

+0

@ joel-brown PostgreSQLのように、用語に軽微な誤りがあるようです。それは標準的なエラーメッセージです。 –

関連する問題