2014-10-01 87 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

这些别名就像漂亮的名字或临时名称,用于以排序形式调用表。