2017-06-21 224 views
1

我有兩個表,我在MySQL中使用加盟:加入具有相同的字段和數據合併兩個表爲一個字段(MySQL的)

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

我的原始表是這樣的:

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

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

而且我得到這個

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

但我很期待這樣的:

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

我該怎麼辦呢?

回答

0

使用

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

嘗試

選擇TableA.ID,TableA.Contact,TableB.Reason從表A 留在TableA.ID = TableB.ID加入表B;

0

你需要一個join條件:

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

任何MySQL之外的數據庫需要onjoin。我很確定MySQL需要onleft join,所以我希望你的第一個查詢產生一個錯誤。

0

因爲您正在從表A中選擇完整的數據,這就是爲什麼你變得空白原因欄也嘗試選擇你想要顯示的數據。

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

您需要更正不推薦表和主鍵連接表之間的關係,可以有意想不到的效果,當一個表的ID不會與第二個表中的ID相符。

+0

嗨!你有什麼建議?我在MySQL中相當新。謝謝! –

+0

您需要將表b中的ID作爲外鍵放在表a中,例如 而不是表A中的原因將Reason_ID作爲外鍵。 然後連接兩個表TableA.Reason_ID = TableB.ID – khurram

相關問題