0

我已经搜索过这个问题,但没有找到任何类似的东西。我有两个表,都有一个字段,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 回答