2016-08-03 50 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 
相关问题