2016-08-03 41 views
1

我對SQL相當陌生,所以我還沒有進入多表的使用狀態。使用外鍵:使用ID列從另一個表中獲得列

這裏是我的表:

客戶端表 - >

CREATE TABLE IF NOT EXISTS player_table (
player_id SMALLINT(6) UNSIGNED NOT NULL AUTO_INCREMENT, 
playername varchar(40) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL, 
PRIMARY KEY (player_id), 
UNIQUE KEY playername (playername) 
) 
COLLATE latin1_general_ci, ENGINE = INNODB 

數據表 - >

CREATE TABLE Data_table ( 
data_id int(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
timestamp datetime NOT NULL, 
player_id SMALLINT(6) UNSIGNED NOT NULL, 
action TINYINT(3) UNSIGNED NOT NULL, 
data varchar(400) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, 
PRIMARY KEY (data_id), 
KEY timestamp (timestamp), 
KEY player (player_id) 
) COLLATE latin1_general_ci, ENGINE = INNODB; 

我想要做的是從player_table鏈接player_idSELECT聲明。所以當我從Data_table中選擇所有的數據時,我想得到一個playername不是player_id結合其餘的數據Data_table成立。無論如何要有效地做到這一點?

回答

1

您可以使用左連接或內部加入按您的要求

SELECT 
     D.*, 
     P.playername 
    FROM Data_table D 
    LEFT JOIN player_table P ON P.player_id=D.player_id 
相關問題