我已经搜索过这个问题,但没有找到任何类似的东西。我有两个表,都有一个字段,FormID。在表A中,FormID是唯一的。在表B中,可以有多个具有相同FormID的记录 - 表B是问题跟踪器表,因此如果表单中存在多个数据输入问题,那么将有多个记录。
以下查询有效:
select distinct b.FormID
from b
where b.FormID = a.FormID
and a.status='done'
它确实生成了唯一FormID的结果列表。但是,我还需要在此查询中获取其他一些列,当我将这些列添加到select或join时,我将获得所有重复的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的所有行结束。
建议?
答案 0 :(得分: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