1

我阅读了过去的问题,但我无法解决我的问题:(

这是我的情况。

>>table paciente
idPaciente | nombres | apellidos | fecNac | direccion | telefono | idenfermedad | idApoderado

>>table enfermedad
idenfermedad | detalle

>>table apoderado
idApoderado | nameA | apeA 

我想得到这个结果:

idPaciente | nombres | apellidos | fecNac | direccion | telefono | detalle | nameA | apeA
4

2 回答 2

2

使用主表中的外键表的主键使用 JOIN 子句,这些外键存在于其中。还要注意表别名的使用(即 paciente p),它有助于减少打字:)

select 
  p.idPaciente, 
  p.nombres,
  p.apellidos, 
  p.fecNac, 
  p.direccion, 
  p.telefono, 
  e.detalle, 
  a.nameA,
  a.apeA 

from paciente p
join enfermedad e on e.idApoderado = p.idApoderado 
join apoderado a on a.idPaciente = p.idPaciente 

并尝试使用 LEFT 和 RIGHT 连接来查看不同的结果集。

select 
  p.idPaciente, 
  p.nombres,
  p.apellidos, 
  p.fecNac, 
  p.direccion, 
  p.telefono, 
  e.detalle, 
  a.nameA,
  a.apeA 

from paciente p
left join enfermedad e on e.idApoderado = p.idApoderado 
left join apoderado a on a.idPaciente = p.idPaciente 
于 2012-06-12T01:04:56.607 回答
1

这应该有效:

SELECT p.idPaciente, p.nombres, p.apellidos, p.fecNac, p.direccion, p.telefono, 
       e.detalle, a.nameA, a.apeA
FROM paciente as p
JOIN enfermedad as e on e.idenfermedad = p.idenfermedad 
JOIN apoderado as a on e.idApoderado = a.idApoderado
于 2012-06-12T01:00:44.337 回答