2013-03-07 27 views
1

假設我有以下表格:如何在mysql中執行以下連接?

TABLEA

id|first_name|sport 
1 | alice | swimming 
2 | bob | basketball 
3 | casey | baseball 

tableB的

name | hobby 
alice | running 
bob | null 

我想類似的表A,但用的附加列的輸出表:

id | first_name | sport | theirhobby 
1 | alice | swimming | running 
2 | bob | basketball | null 
3 | casey | baseball | null 

請注意,列的名稱fo從tableA保留了名稱,並且唯一附加到tableA的新列是業餘愛好。

回答

3
SELECT a.ID, a.first_name, a.sport, 
     b.hobby 
FROM tableA a 
     LEFT JOIN tableB b 
      ON a.first_name = b.name 

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

+0

有沒有辦法從追加的tableB的一列沒有明確地從表A命名每列? – Setsuna 2013-03-07 05:21:54

+0

@SeiSeiei使用'SELECT *',使用'*'的缺點是當兩個表都存在列名時。它會引起歧義,或者如果不是,只有第一個表中的列會顯示,忽略其他具有相同名稱的表上的其他列。 – 2013-03-07 05:22:46

+0

選擇a。*,b.hobby ....您可以使用表名。*從該單表中選擇每一列 – WhiteboardDev 2013-03-07 05:24:12

0

希望你需要的數據上面提到的格式不是 一張桌子。 在這裏,我剛纔提到的查詢來獲取數據像你問

SELECT a.id,a.first_name,a.sport,b.hobby FROM table1一個LEFT JOIN table2 B關於a.first_name = b.name

只是在烏拉圭回合的phpmyadmin執行上面的查詢,然後實現它在烏拉圭回合的PHP代碼 希望其到u有用