我有这个问题。我需要从tickettable查询票号和成员表中的成员名,在postgres中使用随机函数和distinct关键字。 MemberName应该是唯一的。
此代码适用于mySQL,但在PostgreSQL中不起作用。
SELECT a.ticketNum, b.memberName
FROM tickettable a, memberstable b
GROUP BY memberName
ORDER BY by rand()
LIMIT 2
我该怎么办?
答案 0 :(得分:1)
Postgres中的随机数函数是random()
。其次,group by
不起作用,因为ticketNum
未包括在内。你可以通过多种方式做你想做的事。这是一个相关的子查询方式:
SELECT m.memberName,
(select t.ticketNum
from tickettable t
order by random()
limit 1
) as ticketNum
FROM memberstable m
LIMIT 2;
此外,请注意以下事项:
,
子句中的from
已替换为cross join
。在from
子句中避免使用逗号。始终使用明确的join
语法。