【发布时间】:2012-07-09 05:11:16
【问题描述】:
我正在尝试运行 SQL 查询以获取四个随机项目。由于表product_filter 在product 中有不止一个touple 我必须在SELECT 中使用DISTINCT,所以我得到了这个错误:
对于 SELECT DISTINCT,ORDER BY 表达式必须出现在选择列表中
但是如果我将RANDOM() 放在我的SELECT 中,它将避免DISTINCT 结果。
有人知道如何将DISTINCT 与RANDOM() 函数一起使用吗?以下是我有问题的查询。
SELECT DISTINCT
p.id,
p.title
FROM
product_filter pf
JOIN product p ON pf.cod_product = p.cod
JOIN filters f ON pf.cod_filter = f.cod
WHERE
p.visible = TRUE
LIMIT 4
ORDER BY RANDOM();
【问题讨论】:
-
为什么一定要加入
product_filter?您似乎没有在查询中的任何地方使用它。 -
@EricPetroelje,我已经减少了查询,它更复杂,但基本上我正在使用表
product_filter进行其他连接。我对问题进行了编辑以更好地说明它。
标签: sql postgresql select