PHP在同一个表中选择不同行的不同值

时间:2013-05-27 13:42:58

标签: php mysql database select

我有一个包含两列的数据库:

1. city : amsterdam, rome, london, amsterdam, rome, new york, ...
2. type : red, green, blue, red, green, ...

我必须从数据库中选择列的不同值并将它们放在一起。

结果必须如下:

amsterdam red, amsterdam blue, amsterdam green, rome red, rome blue, rome green, london ...

我尝试使用“select distinct”和“array_unique”,可能是以错误的方式,但我无法得到结果。

2 个答案:

答案 0 :(得分:2)

您可以这样做:

select city.city, color.color
from (select distinct city
      from t
     ) city cross join
     (select distinct color
      from t
     ) color

您正在寻找两列中所有值的组合。第一个子查询返回city列中的所有值。来自color的第二个全部值。 cross join是用于生成所有组合的SQL机制。

答案 1 :(得分:0)

SELECT DISTINCT city, type
FROM table