2012-06-01 105 views
1

我有3個表,我想加入它。我想要返回名稱代碼

檢查此琴:http://sqlfiddle.com/#!2/20410/2

在列:乙級,特爾佳,夸爾塔,金塔和而不是數字天蛾 ...我需要在「materias」表中的名稱。 但我檢查所有的ID從同一張表「materias」

這可能嗎?有人能幫助我嗎?

回答

1

你可以做,以兩種方式使用內部連接和使用子查詢。

使用內部連接:

SELECT 
h.id_classe, 
h.id_aula, 
s.serie, 
m1.materia as segunda, 
m2.materia as terca, 
m3.materia as quarta, 
m4.materia as quinta, 
m5.materia as sexta 
FROM horario_de_aulas h 
INNER JOIN materias as m1 on h.segunda = m1.id_materia 
INNER JOIN materias as m2 on h.terca = m2.id_materia 
INNER JOIN materias as m3 on h.quarta = m3.id_materia 
INNER JOIN materias as m4 on h.quinta = m4.id_materia 
INNER JOIN materias as m5 on h.sexta = m5.id_materia 
INNER JOIN series s ON h.classe = s.id_serie = 1 
LIMIT 4 

使用子查詢

SELECT 
h.id_classe, 
h.id_aula, 
s.serie, 
(select materia from materias where id_materia=h.segunda) as segunda, 
(select materia from materias where id_materia=h.terca) as terca, 
(select materia from materias where id_materia=h.quarta) as quarta, 
(select materia from materias where id_materia=h.quinta) as quinta, 
(select materia from materias where id_materia=h.sexta) as sexta 
FROM horario_de_aulas h 
INNER JOIN materias m 
INNER JOIN series s ON h.classe = s.id_serie = 1 
LIMIT 4 
+0

精彩!它完美的工作! ^^ – pcsi

1

嘗試以下查詢:

SELECT 
h.id_classe, 
h.id_aula, 
s.serie, 
m1.materia as segunda, 
m2.materia as terca, 
m3.materia as quarta, 
m4.materia as quinta, 
m5.materia as sexta 
FROM horario_de_aulas h 
INNER JOIN materias as m1 on h.segunda = m1.id_materia 
INNER JOIN materias as m2 on h.terca = m2.id_materia 
INNER JOIN materias as m3 on h.quarta = m3.id_materia 
INNER JOIN materias as m4 on h.quinta = m4.id_materia 
INNER JOIN materias as m5 on h.sexta = m5.id_materia 
INNER JOIN series s ON h.classe = s.id_serie = 1 
LIMIT 4 
+0

它的工作原理的人......謝謝^^ – pcsi