2017-11-24 5 views
1

Bin auf der Suche nach der Hilfe von einigen SQL-Abfrage-Experten.Wie bekomme ich die Vereinigung von 2 Feldern Werte aus 2 Tabellen in einem Feld?

Ich habe eine harte Zeit für mich, um das Problem in unter SQL-Anweisung zu beheben. Dies ist eine Join-SQL-Anweisung von 3 Tabellen. und ich brauche ähnliche Art von Daten von Menschen und Alumni-Tabelle. Und der Feldname ist auch in beiden Tabellen gleich. Also meine Frage ist - gibt es irgendwelche für mich, um die gleichen Daten in einem einzigen Feld zu bekommen?

SELECT DISTINCT P.people_id, P.Name,P.Journal_name, N.People_id, N.Name, N.Journal_name 
FROM `Paper_Author` AS A 
LEFT JOIN `People` AS P ON (A.Author_id = P.people_id) 
LEFT JOIN `Alumni` AS N ON (A.Author_id = N.People_id) 
WHERE A.Paper_id =2067 
ORDER BY A.Author_sortorder 
LIMIT 0 , 30 

Eg Aktuell Ergebnis ist:

Id-- Name-- Journal_name-- ID2-- Name-- Journal_name 
    1 Name1  A1   NULL NULL   NULL 
    2 Name2  B1   5 Name10   NULL 
    3 Name3  C1   3 Name3   C1 

Erwartetes Ergebnis:

Id-- Name-- Journal_name-- 
    1 Name1  A1   
    2 Name2  B1   
    3 Name3  C1     
    5 Name10 NULL 

Ich möchte wissen, ob ich gefeilt ähnliche Werte in einzelnen bekommen? zB: beides Journal_name in einem Feld?

+0

Was ist mit der Zeile voller NULL? – madalinivascu

+0

besser versuchen Sie eine Union hier – madalinivascu

+0

@madalinivascu leeren Datensatz. Tabelle1 und Tabelle2 sind genau ähnliche Tabellen. Die meiste Zeit kann ich eine bestimmte Person in entweder t1 oder t2 finden. aber in wenigen Fällen kann in beiden gefunden werden. – RAWhoLovesMusic

Antwort

1

Ein UNION sollte für diese Aufgabe funktionieren. Mit einer UNION-Anweisung erhalten Sie beide Ergebnisse in einem einzigen Ergebnissatz:

SELECT DISTINCT P.people_id, P.Name, P.Journal_name, AP.Author_sortorder 
FROM `Paper_Author` AS AP 
LEFT JOIN `People` AS P ON (A.Author_id = P.people_id) 
WHERE AP.Paper_id = 2067 
UNION 
SELECT DISTINCT N.People_id, N.Name, N.Journal_name, AN.Author_sortorder 
FROM `Paper_Author` AS AN 
LEFT JOIN `Alumni` AS N ON (A.Author_id = N.People_id) 
WHERE AN.Paper_id = 2067 
ORDER BY Author_sortorder 
Verwandte Themen