2013-09-17 3 views
1

У меня есть три таблицы, и я хочу видеть в первом значения, которые исходят от других. Позвольте мне объяснить лучше:Заменить значения столбца в таблице

стол урок

+------------------+----------------+----------------+------------+-----------+ 
| LessonCode  | SubjectCode | ClassCode  | hour  | day  | 
+------------------+----------------+----------------+------------+-----------+ 
| 1    | 10    | 1    | 15   | m   | 
| 2    | 11    | 2    | 20   | t   | 
| 3    | 12    | 3    | 30   | w   | 
+------------------+----------------+----------------+------------+-----------+ 

класс таблицы

+------------------+----------------+ 
| ClassCode  | ClassName  | 
+------------------+----------------+ 
| 1    | Class1   | 
| 2    | class2   | 
| 3    | class3   | 
+------------------+----------------+ 

стол предмет

+------------------+----------------+ 
| subjectCode  | SubjectName | 
+------------------+----------------+ 
| 10    | Maths   | 
| 11    | English  | 
| 12    | Greek   | 
+------------------+----------------+ 

Я хотел бы вставить в lesson таблице столбцы SubjectName и ClassName вместо SubjectCode и ClassCode, имеющий следящий таблицу:

+------------------+----------------+----------------+------------+-----------+ 
| LessonCode  | SubjectName | ClassName  | hour  | day  | 
+------------------+----------------+----------------+------------+-----------+ 
| 1    | Maths   | Class1   | 15   | m   | 
| 2    | English  | Class2   | 20   | t   | 
| 3    | Greek   | Class3   | 30   | w   | 
+------------------+----------------+----------------+------------+-----------+ 

Как я могу сделать?

+5

Вы говорите, что хотите денормализовать таблицу, или просто хотите получить запрос, который обеспечивает этот конечный результат? –

+0

просто хочу получить запрос, который дает конечный результат, спасибо – Bernheart

ответ

3

Это выглядит как работа для JOIN s! INNER JOIN на помощь!

SELECT LessonCode, SubjectName, ClassName, hour, day 
FROM lesson 
JOIN class on lesson.ClassCode = class.ClassCode 
JOIN subject on lesson.SubjectCode = subject.SubjectCode 
+0

вот вам забавная демонстрация - http://sqlfiddle.com/#!2/a95de9/1 – Taryn

+0

@bluefeet: Спасибо! Я на самом деле собирался сделать один :-) –

+0

@bluefeet Играя это немного быстро и свободно со словом «весело» :) –

Смежные вопросы