MySQL Query用于显示表中的记录

时间:2013-06-26 12:04:56

标签: mysql

我有一个查询。我有两列国家和州的表。我想以下列格式显示列

Country       State            
----------- ---------
India        Delhi
             Bangalore   
             Kolkata
             Mumbai


USA          California
             Florida
             Las Vegas
             Virginia

这意味着"印度"只在国家/地区列中出现一次,当我从表格中选择国家/地区时,重复的值将在国家/地区列中显示为空白值。

提前致谢

2 个答案:

答案 0 :(得分:1)

演示文稿通常并不总是在SQL之外更好地完成,所以我建议在你的表示层运行的任何地方执行此操作,但如果它是查询的要求,你可以使用session执行它变量;

SELECT Country, State FROM (
  SELECT IF(Country=@country, '', Country) Country, State, @country := Country
  FROM (SELECT Country, State FROM Table1 ORDER BY Country, State) dummy1, 
       (SELECT @country:='') dummy2
) dummy3;

An SQLfiddle to test with

只是为了显示(可能)更好的方法,您可以使用它来获取每个国家/地区的状态列表,并在您的表示层中进一步处理它;

SELECT Country, GROUP_CONCAT(State) FROM Table1 GROUP BY Country;

Another SQLfiddle

答案 1 :(得分:-2)

使用pl / sql.Moreover你的表将是第5范式。