2010-02-03 12 views
1

Je veux créer une vue/table dans mysql. J'ai deux tables maintenant:Comment créer une vue/table dans mon contexte dans mysql?

create table teacher(
id int(10) not null auto_increment, 
name varchar(50), 
primary key(id) 
); 
create table student(
id int(10) not null auto_increment, 
name varchar(50), 
teacher_id int(10), 
primary key(id), 
foreign key(teacher_id) references teacher(id) on delete cascade); 

Maintenant, je veux obtenir teacher.name et student.name dans la même colonne, et de faire teacher.teacher_id comme parent_id, student.id comme id.

La nouvelle table doit être la structure:

table(parent_id, id, name); 

Edit:

La valeur de la colonne "nom" est soit le nom de l'enseignant ou le nom de l'étudiant.

exemple:

parent_id  id    name 
    0   1   teacher1 
    1   2   student1 
    1   3   student2 
    0   4   teacher2 
    4   5   student3 

Comment faire? Merci d'avance;)

Modifier: est-il quelqu'un qui sait comment faire cela? Je me demande ...

Répondre

2

Je ne suis pas sûr de comprendre ce que vous voulez dire en obtenant teacher.name et student.name dans la même colonne. J'ai supposé que vous vouliez dire que vous voulez les joindre ensemble comme une chaîne, par exemple "John Smith, Michael Jones".

CREATE VIEW teacherstudent AS 
SELECT teacher.id AS parent_id, student.id AS child_id, CONCAT(teacher.name,', ',student.name) AS name 
FROM teacher, student 
WHERE teacher.id = student.teacher_id; 

Vous pouvez maintenant faire juste un select * from teacherstudent;

+0

@thanks Mailslut, je suis désolé pour laisser votre confusisng. Je veux utiliser teacher.name et students.name dans la même colonne, la colonne a un teacher.name ou student.name. –

Questions connexes