2017-12-27 4 views
1

Ich habe zwei Tabellen haben:auf Tabellen Join, die mehrere Datensätze gegen gleiche ID

applicant_personal_info wie folgt aussieht:

A_id   FirstName  LastName 
1   Fahad   Subzwari 

applicant_professional_info Tabelle sieht wie folgt aus:

A_id  JobOrganization JobDuration  TotalExperience 
1    10Pearls   12 Months  20 Months 
1    Axact   8 Months  20 Months 

Ich möchte Wählen Sie Daten aus beiden Tabellen und haben diese Abfrage versucht:

SELECT GROUP_CONCAT(aper.FirstName,aper.LastName) AS Name, 
apro.totalExperience '+ 
'FROM applicant_personal_info aper INNER JOIN applicant_professional_info 
apro ON '+ 
'aper.ApplicantID = apro.ApplicantID WHERE aper.ApplicantID = 

Aber diese Abfrage zurückgibt Name 2 mal, da es zwei Datensätze in der wie folgt applicant_professional_info Tabelle sind:

{ 
    Name : Fahad Subzwari, Fahad Subzwari, 
    TotalExperience: 20 Months 
} 

Aber ich will ein Ergebnis wie folgt aus:

{ 
    Name : Fahad Subzwari, 
    TotalExperience: 20 Months 
} 
+0

See nutzen könnten [Warum sollte ich einen MCVE für das, was mir scheint sehr einfach zu sein SQL-Abfrage] (http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-se ems-to-me-to-be-a-sehr-einfach-sql-Abfrage) – Strawberry

Antwort

0

Sie DISTINCT innerhalb GROUP_CONCAT()

SELECT GROUP_CONCAT(DISTINCT CONCAT(aper.FirstName,' ',aper.LastName)) AS Name, 
GROUP_CONCAT(DISTINCT apro.totalExperience) totalExperience 
FROM applicant_personal_info aper 
INNER JOIN applicant_professional_info apro ON aper.ApplicantID = apro.ApplicantID 
GROUP BY aper.ApplicantID 

DEMO

Beispielausgabe

================================= 
Name   totalExperience 
-------------- ----------------- 
Fahad Subzwari 20 Months 
================================= 
+1

danke es funktioniert :) –

+1

@Fahad_SUbzwari Wenn dies funktioniert dann akzeptieren Sie – janith1024

+1

@ janith1024 akzeptiert –

0

Das distinct Schlüsselwort sein könnte was du brauchst. Es ermöglicht das Filtern von Duplikaten aus dem Abfrageergebnis.

Weitere Informationen finden Sie unter here.

Ihre Select-Anweisung würde identisch mit der kleinen Addition des Schlüsselworts distinct nach select aussehen.

+0

Ich habe dies auch versucht. aber immer noch gibt es zurück Name 2 mal –

+0

ich habe diese Abfrage auch versucht SELECT DISTINCT (GROUP_CONCAT (aper.FirstName, aper.LastName)) AS Name, apro.totalExperience '+ ' FROM Bewerber_personal_info aper INNER JOIN Bewerber_Professional_info APRO ON '+ 'aper.ApplicantID = apro.ApplicantID WHERE aper.ApplicantID = –

+0

Erst jetzt habe ich die Ursache des Problems erkannt. Erhalten Sie nur eine '' 'TotalExperience''' in Ihrem Ergebnis? – yarwest