4

MySqlのいくつかのテーブルからテーブルを作成する必要があり、次のような2つの列が必要です。

-------------------
名前| table_name |
-------------------

私はこれをやっています:

Create table teams as 
(
Select name from table1
union
Select name from table2
union
Select name from table3);

各テーブル名を2番目の列として含めるにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

3

引用符で囲まれた文字列リテラルを含めます。結果のテーブルで列名として使用される列エイリアスも必ず指定してください。

CREATE TABLE teams AS 
  /* Quoted string literal with column alias */
  (SELECT name, 'table1' AS `tablename` FROM table1)
  UNION 
  (SELECT name, 'table2' AS `tablename` FROM table2)
  UNION
  (SELECT name, 'table3' AS `tablename` FROM table3);

他のテーブルの潜在的に類似した行と区別するために各行に 2 番目の値を実際に追加しているため、UNIONは a と同等にUNION ALLなり、重複する行は計画のように重複排除されないことに注意しUNIONてください。結果が元の結果と異なる場合があることに注意してくださいUNION

于 2012-10-29T14:32:45.333 に答える