0

私はこれまでのところこれを持っていますが、列「名前」があいまいなので、モデルテーブルの名前列を別のものに変更したいです(学生テーブルである名前列もあります)。これどうやってするの?

SELECT name
FROM student
JOIN modle ON modle.id = event.modle
JOIN event ON event.id = attends.event
JOIN attends ON attends.student = student.id
WHERE name LIKE '%Database%'
4

2 に答える 2

1

列の前にテーブルを付けて、あいまいさを回避し、エイリアスを提供できます。

例えば:

SELECT modle.name, student.name AS student_name FROM …

nameただし、一部の SQL フレーバーでは予約語であるため、この場合は列名を変更することをお勧めします。

ALTER TABLEこれは、コマンドまたはデータベース マネージャーを使用して行うことができます。

ALTER TABLE modle CHANGE COLUMN name modle_name [column_definition]
于 2012-06-15T02:57:16.710 に答える
1

列エイリアスを使用すると、特定の結果セットに対して独自の列名を作成できます。
例:

SELECT modle.`name` AS model_name, student.`name` AS student_name
FROM student
JOIN modle ON modle.id = event.modle
JOIN event ON event.id = attends.event
JOIN attends ON attends.student = student.id
WHERE name LIKE '%Database%';

列名を永続的に変更したい場合は、次のALTER TABLEコマンドを使用します:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

例:

ALTER TABLE student 
CHANGE COLUMN `name` student_name VARCHAR(50);

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

于 2012-06-15T03:00:33.830 に答える