选择2个表格

时间:2012-06-12 00:56:19

标签: sql select

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

这是我的情况。

>>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

2 个答案:

答案 0 :(得分: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 

答案 1 :(得分: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