Mysql SQL交叉连接的实际应用

Mysql SQL交叉连接的实际应用,mysql,sql,Mysql,Sql,我目前正在学习使用MySQL服务器的SQL语法,我遇到了这个称为交叉连接的连接函数。我只是好奇这个交叉连接的实际用途。根据您的经验,是否有任何情况需要交叉连接功能?因为到目前为止,我似乎不明白为什么会有人想用交叉连接来连接所有的值。有没有交叉连接可以派上用场的例子?当然。假设我想写一份报告,列出每种形状和颜色,并与之相联系的是一些人,他们说这是他们最喜欢的形状和颜色 Shapes ------ Triangle Square Colors ----- Red Green Blue Peop

我目前正在学习使用MySQL服务器的SQL语法,我遇到了这个称为交叉连接的连接函数。我只是好奇这个交叉连接的实际用途。根据您的经验,是否有任何情况需要交叉连接功能?因为到目前为止,我似乎不明白为什么会有人想用交叉连接来连接所有的值。有没有交叉连接可以派上用场的例子?

当然。假设我想写一份报告,列出每种形状和颜色,并与之相联系的是一些人,他们说这是他们最喜欢的形状和颜色

Shapes
------
Triangle
Square


Colors
-----
Red
Green
Blue

People
-----
John, Blue, Triangle
Mary, Blue, Triangle
Steve, Red, Square


SELECT 
  s.Shape,
  c.Color,
  Count(*)
FROM
  Shapes s 
  CROSS JOIN Colors c 
  LEFT JOIN People p ON s.Shape = p.Shape and c.Color = p.Color
GROUP BY
  s.Shape,
  c.Color
结果有各种形状和颜色组合,即使我的人员数据没有

Red,   Triangle, 0
Green, Triangle, 0
Blue,  Triangle, 2
Red,   Square,   1
Green, Square,   0
Blue,  Square,   0

当我们想要创建组合时,我们可以使用交叉连接,特别是当我们的实际数据中没有这些组合时

当您想要从两个表中生成所有组合时,可以使用交叉连接。我个人经常使用它从“参数CTE”(总是有一行)中检索值。那么我想在某些情况下,它可能是非常实用的。亲爱的先生,感谢您提供了一个简单易懂的示例!