MySQL,对第一列中的每个值重复所有值

MySQL,对第一列中的每个值重复所有值,mysql,Mysql,对不起,我甚至不知道怎么问,但这就是问题所在。我有一张30排的小桌子 我想从一列中选择所有值,并使用每个值带来另一列中的所有值,重复 让我举个小例子,这是我的表和值: [column color] / [column qtd] blue / 3 red / 5 gray / 7 yellow / 2 我希望在SELECT查询中显示该结果: blue / 3 blue / 5 blue / 7 blue / 2 red / 3 red / 5 red / 7 red / 2 gray / 3 g

对不起,我甚至不知道怎么问,但这就是问题所在。我有一张30排的小桌子

我想从一列中选择所有值,并使用每个值带来另一列中的所有值,重复

让我举个小例子,这是我的表和值:

[column color] / [column qtd]
blue / 3
red / 5
gray / 7
yellow / 2
我希望在SELECT查询中显示该结果:

blue / 3
blue / 5
blue / 7
blue / 2
red / 3
red / 5
red / 7
red / 2
gray / 3
gray / 5
gray / 7
gray / 2
yellow / 3
yellow / 5
yellow / 7
yellow / 2
它将从column color中获取所有值,并为每个不同的颜色值重复从qtd中获取所有值

对不起,这有点难以解释:(


但是谢谢。

您可以对子查询执行
交叉联接
,该子查询从同一个表返回
不同的qtd
。这将导致子查询中的所有行与
不同颜色的所有行联接

SELECT DISTINCT
  color,
  q.qtd
FROM
  /* Assuming your table is `color` */
  color
  /* CROSS JOIN (like an inner join with no ON clause) */
  CROSS JOIN (
    SELECT DISTINCT qtd FROM color
  ) q
ORDER BY color, q.qtd

下面是一个演示:

您似乎想要表中两个值的所有组合。使用
交叉连接
不同的

select c.color, q.qtd
from (select distinct color from table t) c cross join
     (select distinct qtd from table t) q

太好了,非常感谢。交叉加入,另一个需要学习的东西。谢谢:)