2016-08-03 21 views
1

Ich bin ziemlich neu in SQL, so dass ich noch sehr weit in Multi-Table-Nutzung wagen.Verwenden von Fremdschlüssel: Abrufen einer Spalte aus einer anderen Tabelle mit der ID-Spalte

Hier sind meine Tabellen:

Client-Tabellen->

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 

Datentabelle ->

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; 

Was ich versuche, meine die player_id von player_table Link zu tun SELECT Aussage. Also, wenn ich alle Daten von Data_table auswähle, möchte ich eine playername NICHT player_id in Kombination mit dem Rest der Daten erhalten Data_table hält. Gibt es trotzdem eine effiziente Lösung?

Antwort

1

können Sie verwenden LEFT JOIN OR Inner Join wie pro Ihre Anforderung

SELECT 
     D.*, 
     P.playername 
    FROM Data_table D 
    LEFT JOIN player_table P ON P.player_id=D.player_id 
Verwandte Themen