使用下表,我想获取每个UNIQUE表单的id,form,value,其中value = 1.我已尝试select id, form, value from tableName group by form
但查询返回ID 1和6,而不是ID 2和4就像我想要的那样。
编辑1& 2:我试图在左外连接的子查询中使用它,但我只是想获取一个值为= 1的所有表单的列表(如果存在),否则值= 0结果,为了在我的加入中使用。如果我使用select id, form, value from tableName where value=1 group by form
我没有获得a2或b1表格。
id form value
---|-----|------------
1 | a1 | 0
2 | a1 | 1
5 | a2 | 0
3 | b1 | 0
4 | c1 | 1
6 | c1 | 0
我想要的结果是:
id form value
---|-----|------------
2 | a1 | 1
5 | a2 | 0
3 | b1 | 0
4 | c1 | 1
答案 0 :(得分:1)
你在找这样的东西吗?
SELECT t.id, q.form, q.value
FROM (
SELECT form, MAX(value) value
FROM table1
GROUP BY form
) q JOIN table1 t
ON q.form = t.form
AND q.value = t.value
输出:
| id | form | value | |----|------|-------| | 2 | a1 | 1 | | 5 | a2 | 0 | | 3 | b1 | 0 | | 4 | c1 | 1 |