2017-06-21 3 views
1

ich zwei Tabellen, die ich in MySQL bin Beitritt mit:Zwei Tabellen mit demselben Feld und Zusammenführen von Daten in ein Feld (MySQL)

select TableA.*, TableB.Reason from TableA 
 
left outer join TableB; 
 

Meinen rohen Tabellen sind wie folgt aus:

Table A 
 
-----+--------+-------+ 
 
| ID | Contact| Reason| 
 
+----+--------+-------+ 
 
| 1 | Phone |  | 
 
| 2 | Mail |  | 
 
| 3 | Web | Info | 
 

 
Table B 
 
-----+-----------+ 
 
| ID | Reason | 
 
+----+-----------+ 
 
| 1 | Complaint |   
 
| 2 | Info  |  
 
| 3 |   |

Und ich bin immer diese

-----+--------+-----------+---------+ 
 
| ID | Contact| Reason | Reason | 
 
+----+--------+-----------+---------+ 
 
| 1 | Phone |   |Complaint| 
 
| 2 | Mail |   | Info | 
 
| 3 | Web | Info  |   |

Aber ich erwarte dies:

-----+--------+-----------+ 
 
| ID | Contact| Reason | 
 
+----+--------+-----------+ 
 
| 1 | Phone | Complaint | 
 
| 2 | Mail | Info  | 
 
| 3 | Web | Info  |

Wie kann ich das tun?

Antwort

0

Verwenden

select TableA.ID, TableA.Contact, TableB.Reason from TableA 
left outer join TableB; 
0

Versuchen

wählen TableA.ID, TableA.Contact, TableB.Reason von TableA TableB verbinden links auf TableA.ID = TableB.ID;

0

Sie benötigen einen join Zustand:

select a.id, a.contact, b.Reason 
from TableA a left join 
    TableB b 
    on a.id = b.id; 

Jede andere Datenbank als MySQL on für join erfordert. Ich bin ziemlich sicher, dass MySQL on für erfordert, also würde ich erwarten, dass Ihre erste Abfrage einen Fehler generiert.

0

Da Sie vollständige Daten aus Tabelle A auswählen, deshalb erhalten Sie eine leere Grundspalte, versuchen Sie auch, Daten auszuwählen, die Sie anzeigen möchten.

SELECT TableA.ID, TableA.Contact, TableB.Reason from TableA 
left outer join TableB on TableA.ID = TableB.ID; 
0

Sie benötigen die Beziehung zwischen Tabellen und Verknüpfen von Tabellen auf Primärschlüssel zu korrigieren ist nicht zu empfehlen, kann dies zu unerwarteten Ergebnissen führen, wenn die ID einer Tabelle wird mit der ID in der zweiten Tabelle nicht überein.

+0

Hallo! Was empfehlen Sie? Ich bin ziemlich neu in MySQL. Vielen Dank! –

+0

Sie müssen ID in Tabelle b als Fremdschlüssel in Tabelle a zum Beispiel statt Grund in Tabelle A Platz Reason_ID als Fremdschlüssel platzieren. dann verbinden Sie beide Tabellen TableA.Reason_ID = TableB.ID – khurram

Verwandte Themen