我读过去的问题,但我无法解决我的问题:(
这是我的情况。
>>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
答案 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