抱歉,我甚至不知道该怎么问,但那就是问题。我有一个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
它带来了列颜色的所有值,并为每个不同的颜色值重复qtd的所有值。
对不起,这有点难以解释:(
但是谢谢。
答案 0 :(得分:1)
您可以针对从同一个表返回CROSS JOIN
的子查询执行DISTINCT qtd
。这将导致子查询中的所有行都连接到DISTINCT color
的所有行。
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
答案 1 :(得分:1)
您似乎想要表中两个值的所有组合。将cross join
与distinct
:
select c.color, q.qtd
from (select distinct color from table t) c cross join
(select distinct qtd from table t) q