到目前为止我有这个,但列“名称”不明确,所以我想将模型表中的名称列更改为其他内容(还有一个名称列是学生表)。我怎样才能做到这一点?
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%'
到目前为止我有这个,但列“名称”不明确,所以我想将模型表中的名称列更改为其他内容(还有一个名称列是学生表)。我怎样才能做到这一点?
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%'
您可以为该列添加前缀以避免歧义并提供别名。
例如:
SELECT modle.name, student.name AS student_name FROM …
但是,我主张在这种情况下更改列名,因为name
在某些 SQL 风格中是保留字。
您可以使用ALTER TABLE
命令或数据库管理器来执行此操作。
ALTER TABLE modle CHANGE COLUMN name modle_name [column_definition]
列别名允许您为特定结果集创建自己的列名。
例子:
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);