2

クエリがあります.国と州の2つの列を持つテーブルがあります.次の形式で列を表示したい

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


USA          California
             Florida
             Las Vegas
             Virginia

これは、「インド」が国の列に 1 回だけ表示され、表から国と州を選択すると、国の列に繰り返し値が空白値として表示されることを意味します。

前もって感謝します

4

2 に答える 2

1

通常、プレゼンテーションは常に SQL の外で行う方がよいとは限りません。そのため、どのプレゼンテーション レイヤーが実行されていてもこれを行うことをお勧めしますが、それがクエリの要件である場合は、セッション変数を使用して行うことができます。

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;

でテストする SQLfiddle

(おそらく) より良い方法を示すために、これを使用して国ごとの州のリストを取得し、プレゼンテーション レイヤーでさらに処理することができます。

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

別の SQLfiddle

于 2013-06-26T12:20:05.630 に答える