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 回答