Sql 当distinct为1和n时,联接操作之间的差异?

Sql 当distinct为1和n时,联接操作之间的差异?,sql,join,Sql,Join,假设我有一个df和df2 如果我想连接这两个表 df:名称,classId df2:classId,时间 a) df.classid.distinct().count()=1 b) df.classid.distinct().count()=n,n100000 如果我想进行联接操作。这三位议员的情况会有所不同吗 联接不依赖于表中的行数。它总是用同样的方式写的。在您的情况下,您正在寻找: select df.name, df.classid, df2.time from df join df

假设我有一个df和df2
如果我想连接这两个表

df:名称,classId
df2:classId,时间

a) df.classid.distinct().count()=1
b) df.classid.distinct().count()=n,n<500
c) df.classid.distinct().count()=n,n>100000


如果我想进行联接操作。这三位议员的情况会有所不同吗

联接不依赖于表中的行数。它总是用同样的方式写的。在您的情况下,您正在寻找:

select df.name, df.classid, df2.time
from df 
  join df2 on df.classid = df2.classid;

一点也不。您可以简单地在ClassID的基础上加入它们。它的Sql引擎开销用于管理join prredicate并为您提供正确的结果。