私はデータレコードを持つ.csvファイルを持っています。各行には組織の部署が含まれています。私はそれらをMySQLデータベースにインポートし、それらをWebアプリケーションで表示したいと思います。データレコードのサンプル要約は次のようになります。SQLテーブル内のデータを分割する方法
もちろん| Company A | Department aaa |
| Company A | Department bbb |
| Company A | Department ccc |
| Company B | Department ddd |
| Company B | Department eee |
| Company C | Department fff |
| Company C | Department ggg |
| Company C | Department hhh |
| Company D | Department iii |
| Company E | Department jjj |
| Company E | Department kkk |
が、私はそれがこのように見えますこれは、その関連部門が付属で一回、それぞれの会社を表示したい、多かれ少なかれ:
| Company A | Department aaa |
| | Department bbb |
| | Department ccc |
| Company B | Department ddd |
| | Department eee |
| Company C | Department fff |
| | Department ggg |
| | Department hhh |
| Company D | Department iii |
| Company E | Department jjj |
| | Department kkk |
私の質問は、これらのデータレコードを連結する最良の方法は何ですか?適切なプログラミング言語(PHP、Ruby、Perlなど)を使用して実行するか、SQLクエリを使用してデータベースで実行しますか? SQLが選択されている場合は、ストアドプロシージャ、一時テーブル、またはインポートインタフェースを使用してSQLを実行しますか?それがSQLの場合、どのように見えますか?ありがとうございました!
ファイルを既存のデータベース/アプリケーションにインポートする方法を尋ねていますか、これはまだ設計していないCSVファイルに関するソリューションの設計について議論する質問ですか?それが後者ならば、それはそれのための質問ではありません。 – Nope
MySQLはこのクエリを比較的簡単にするCTE( 'WITH RECURSIVE'節)をサポートしていません。 PostgreSQLとSQLite3は、例えば次のようなソリューションを持っています:http://sqlfiddle.com/#!15/69fff/3/0 – tonypdmtr
@tonypdmtr、MySQL 8.0.1以降では再帰的なCTEをサポートしています。しかし、8.0はまだリリース候補の状態にあります。 –