因此,两个表中的问题:从一个表基于另一个表中选择不同的值
userinfo: id(PK), users_id(FK to users table), name, surname
doctorpatient: id(PK), doctor_id(FK to users table), patient_id(FK to users table)
的想法是每个医生通过doctorpatient表中分配了几个病人。我想要做的是返回数组的数组,其中每个内部数组包含此:
users_id(doctor), name(doctor), surname(doctor), users_id(patient), name(patient), surname(patient)
可以这样甚至可以做到使用纯SQL?我试过这个:
SELECT userinfo.users_id,
userinfo.name,
userinfo.surname,
u2.users_id,
u2.name,
u2.surname
FROM doctorpatient
RIGHT OUTER JOIN userinfo
ON doctorpatient.doctor_id = userinfo.users_id
LEFT OUTER JOIN userinfo AS u2
ON doctorpatient.patient_id = u2.users_id
但是不管我尝试什么样的组合,它都不会出现正确的。我尝试在三个单独的查询中获取数据,然后以某种方式获得我需要使用PHP的结果,但是我没有得到任何结果。
编辑:我想是这样的:
array(
subarray1(patient_id1,
patient_name1,
patient_surname1,
doctor_id1,
doctor_name1,
doctor_surname1)
subarray2(patient_id2,
patient_name2,
patient_surname2,
doctor_id1,
doctor_name1,
doctor_surname1)
etc...
,其中一个医生可以有多个病人。我的查询得到的结果如下:
array(
subarray1(patient_id1,
patient_name1,
patient_surname1,
)
subarray2(patient_id2,
patient_name2,
patient_surname2,
)
etc...
但是大部分数据都是空的。
什么是你想要得到什么? – Eugene 2013-05-08 16:31:12
乍一看你的查询看起来正确。你能展示你的期望和你得到的是什么吗? – Barmar 2013-05-08 16:33:53