2012-10-12 6 views
0

을, 가입 제거 사용자, 내가 얻는 결과는 현재 데이터에 대해 가능한 모든 조합을 제공합니다. 개별적으로 열을 기준으로 그룹화를 시도했지만 다른 열의 결과가 제거됩니다. 나는 널을 가지고 결과를 얻지 못한다. 이것은 내가 현재 무엇입니까 결과입니다SQL 나는 문을 가입 다음 한 중복 된 결과

당신은 예를 max를 들어, aggregate functions를 사용하여 값 중 하나를 선택해야
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 
+0

,이 데이터를 복제 할 수 없습니다. 마지막 3 열'pnumber','accred','nspecial'은 각 행에 대해 다른 값을 보여줍니다. 하나의 가치 만 원할 경우 어떤 것을 반환할지 결정해야합니다. – Taryn

답변

1

: 사용자가 제공 한 데이터를 기반으로

SELECT dn.fname, dn.lname,w.websit,q.qual,q.year,q.postqual,max(p.pnumber),max(a.accred),max(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