私は次のJoinステートメントを持っています:
SELECT DISTINCT dn.fname, dn.lname,w.websit,q.qual,q.year,q.postqual,p.pnumber,a.accred,n.nspecial
FROM cur_doctor_names dn
LEFT JOIN cur_website w ON dn.userid = w.userid
LEFT JOIN cur_qualification q ON dn.userid = q.userid
LEFT JOIN (Select * from cur_phone_numbers where type="primary") p On dn.userid = p.userid
Left JOIN cur_accreditation a On dn.userid = a.userid
Left JOIN cur_niche n On dn.userid = n.userid
WHERE dn.userid =69
GROUP BY p.pnumber
テーブルcur_phone_numbers(p)、cur_accreditation(a)、cur_niche(n)の場合、結果にはユーザーの0から3のレコードを含めることができます。現在取得している結果は、データのすべての可能な組み合わせを示しています。列で個別にgroupbyを使用してみましたが、他の列からの結果が削除されます。nullで結果を取得してもかまいません。これは私が現在得ている結果です:
fname lname website qual year postqual pnumber accred nspecial
===========================================================================================
First Doctor Last Doctor NULL NULL NULL NULL 123 ISO 9001 one
First Doctor Last Doctor NULL NULL NULL NULL 123 ISO 9001 two
First Doctor Last Doctor NULL NULL NULL NULL 123 ISO one
First Doctor Last Doctor NULL NULL NULL NULL 123 ISO two
First Doctor Last Doctor NULL NULL NULL NULL 1234 ISO 9001 one
First Doctor Last Doctor NULL NULL NULL NULL 1234 ISO 9001 two
First Doctor Last Doctor NULL NULL NULL NULL 1234 ISO one
First Doctor Last Doctor NULL NULL NULL NULL 1234 ISO two