2014-10-01 82 views
0

我們有一個MySQL數據庫,其中包含與下面列的表SportsTicker(如MySQL工作臺所示):需要解釋與MySQL查詢

'IDSportsTicker', 'int(11)', 'NO', 'PRI', NULL, '' 
'SportsID', 'smallint(6)', 'NO', '', '1', '' 
'HomeTeamID', 'int(11)', 'NO', '', NULL, '' 
'ForeignTeamID', 'int(11)', 'NO', '', NULL, '' 
'LeagueID', 'int(11)', 'NO', '', NULL, '' 
'CoverageID', 'smallint(2)', 'NO', '', NULL, '' 
'PlayStateID', 'smallint(2)', 'NO', '', NULL, '' 
'StadiumID', 'int(11)', 'NO', '', NULL, '' 
'dateTime', 'datetime', 'NO', '', NULL, '' 
'neutralGround', 'bit(1)', 'NO', '', 'b\'0\'', '' 
'scoutConfirmed', 'bit(1)', 'NO', '', NULL, '' 
'booked', 'bit(1)', 'NO', '', 'b\'0\'', '' 
'oddsAvailable', 'bit(1)', 'YES', '', 'b\'0\'', '' 
'liveOddsAvailable', 'bit(1)', 'NO', '', 'b\'0\'', '' 

而且我有一個查詢,它的工作原理:

SELECT ST.IDSportsTicker, ST.HomeTeamID, T.name as HomeTeamName, ST.ForeignTeamID, 
AW.name as AwayTeamName, ST.LeagueID, L.name, ST.dateTime 
FROM SportsTicker ST 
JOIN Team T ON ST.HomeTeamID = T.IDTeam 
JOIN Team AW ON ST.ForeignTeamID = AW.IDTeam 
JOIN League L ON ST.LeagueID = L.IDLeague; 

我只是好奇,所有那些'ST。','T.','AW'。和其他前綴是什麼意思?

非常感謝。

+1

這些是爲引用表創建的別名。通常用於使查詢更具可讀性。此外,您可能已經注意到,您在from子句(自加入)中使用了兩次Team表。使用別名作爲列的限定符使得它們毫不含糊。 – 2014-10-01 04:54:10

+0

http://dev.mysql.com/doc/refman/4.1/en/identifiers.html – Phil 2014-10-01 04:54:27

+0

非常感謝,先生們。我甚至不知道要谷歌什麼。 – RdB 2014-10-01 07:45:31

回答

3

它們是aliases,這是一種在查詢中爲表提供備用名稱的方法。您可以在查詢的FROM參數中查看它們是如何定義的(例如,FROM SportsTicker ST,其中ST是查詢中其他地方引用的表的別名)。

0

這些別名就像漂亮的名字或臨時名稱,用於以排序形式調用表。