【发布时间】:2017-09-25 13:30:48
【问题描述】:
我正在使用 Firebird 数据库 v2.5,但无法从查询中删除重复行:
SELECT DISTINCT u.id_user,
(SELECT LIST(g.id_user)
from gen g
where g.id_user=u.id_user
GROUP BY id_user) as list_g_user
FROM users u
where u.id_user = 1
INNER JOIN ...
这是我的结果:
id_user | list_g_user
===================================
1 | 437,499,718,739,835,865
1 | 437,499,718,739,835,865
1 | 437,499,718,739,835,865
1 | 437,499,718,739,835,865
第二列结果list_g_user是BLOB类型。
相同的结果和多行。 谁能解释一下原因?
【问题讨论】:
-
From here "SELECT DISTINCT、ORDER BY 和 GROUP BY 作用于 BLOB ID,而不是内容。这使它们变得无用..." 它继续说 "GROUP BY奇怪的是,如果它们相邻,它会将相等的行组合在一起,但如果它们分开,则不会。”所以也许试试
GROUP BY id_user, list_g_user看看能不能解决问题。 -
为什么需要内连接?
-
你为什么不使用:
select u.id_user, list(g.id_user) from users u join gen g on .. where ... group by u.id_user
标签: sql firebird aggregation firebird2.5