0

この問題を検索しましたが、そのようなものは見つかりませんでした。2 つのテーブルがあり、どちらにも FormID フィールドがあります。テーブル A では、FormID は一意です。テーブル B には、同じ FormID を持つ複数のレコードが存在する可能性があります。テーブル B は問題追跡テーブルであるため、フォームに複数のデータ入力の問題がある場合、そこには複数のレコードが存在します。

次のクエリが機能します。

select distinct b.FormID
from b
where b.FormID = a.FormID
and a.status='done'

一意の FormID の結果リストを生成する限り。ただし、このクエリでは他の列も取得する必要があります。これらの列を選択または結合に追加すると、すべての重複する FormID が取得されます。

私が試してみました:

select distinct (b.FormID), a.FormType, a.Site, a.uid, b.ProbID, b.Date
from b, a
where b.FormID = a.FormID
and a.status='done'

結合を使用したいくつかのバリエーションと同様に、それらはすべて重複する FormID を持つすべての行になります。

提案?

4

1 に答える 1

0

試す

SELECT  b.FormID, 
        MAX(a.FormType) FormType, 
        MAX(a.Site) Site, 
        MAX(a.uid) uid, 
        MAX(b.ProbID) ProbID, 
        MAX(b.Date) Date
  FROM b INNER JOIN 
       a ON b.FormID = a.FormID
 WHERE a.status='done'
 GROUP BY b.FormID
于 2013-03-07T22:10:23.077 に答える