繁体   English   中英

在PostgreSQL中的两个表上使用DISTINCT和RANDOM

[英]Using DISTINCT and RANDOM with two Tables in PostgreSQL

我有这个问题。 我需要从票务表中查询票证编号,从成员表中查询成员名称,并在postgres中使用随机函数和独特关键字。 MemberName应该是唯一的。

该代码在mySQL中有效,但在PostgreSQL中无效。

SELECT a.ticketNum, b.memberName 
FROM tickettable a, memberstable b 
GROUP BY memberName 
ORDER BY by rand()  
LIMIT 2

我该怎么办?

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语法。
  • 表别名是表名称的缩写,使查询更容易进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM