我正在开发的一个遗留应用程序有一个SQL查询,可以从一个表中选择几个属性。在这个restaurant_chef_hats
表中,我可以运行如下查询:
SELECT FirstName FROM restaurant_chef_hats;
一些查询在FROM
之后,但在几个LEFT JOIN
操作发生之前有第二个参数。
给定一个查询,比如...
SELECT FirstName FROM restaurant_chef_hats employees LEFT JOIN ON (~~ some criteria ~~ )
...what是employees
参数的意义吗?
编辑
进一步的上下文:这是在一个命令的上下文中,该命令基于现有表创建一个新的MySQL数据库。下面是完整的查询,其中的表名/列名发生了更改。在本例中,我的问题与单词hatser
在FROM loccodeofchats hatser
中的用途有关:
DROP TABLE IF EXISTS `restaurant_chef_hats`;
CREATE TABLE restaurant_chef_hats AS
SELECT
hatser.TakeoutID,
hats_dish.TakeoutID as cooked_dish_id,
member.RestabName As chef_title,
prefix.PrefixCode as Prefix,
suffix.SuffixCode as Suffix,
hatser.Title,
roles.LUTOrder AS Rank,
address.TypeID,
hatser.AppetizerID as SouschefID,
hatser.AppetizerID_2 as SouschefID_2,
hatser.AppetizerID_3 as SouschefID_3,
roles.RoleDescShort as RoleDesc,
roles2.RoleDescShort as RoleDesc_2,
roles3.RoleDescShort as RoleDesc_3,
dish.FirstName,
dish.LastName,
dish.MiddleName,
dish.NickName,
fork.ForkDesc,
sweet.SweetDesc,
register.RegisterDesc,
address.P_Room,
address.P_Building,
address.P_Street,
address.P_Street2,
state.StateAbbr,
address.P_City,
address.P_ZipCode,
dish.LastUpdated,
hats_dish.BirthdayPartyID,
party.PartyCode,
party.PartyDesc,
address_type.AddressTypeDesc,
CONCAT('(', phone.AreaCode,') ', phone.Phone) as Telephone,
CONCAT('(', fax.AreaCode,') ', fax.Phone) as Fax,
stats.MaritalStatusDesc,
dish.CreationPlace,
dish.CreationYear,
dish.CreationMonth,
dish.CreationDate,
dish.WineCouplingName,
dish.Origin,
dish.Family,
CONCAT_WS(' ',hats_dish.FirstName,hats_dish.LastName) as officeOf
FROM loccodeofchats hatser
LEFT JOIN loccodeofc member ON (hatser.FoodRestabID=member.FoodCounterID AND member.SouschefID=47 AND member.StateID = 0)
LEFT JOIN soups dish ON (hatser.TakeoutID=dish.TakeoutID)
LEFT JOIN soups hats_dish ON (member.TakeoutID=hats_dish.TakeoutID)
LEFT JOIN soupsaddresses address ON (hatser.TakeoutID=address.TakeoutID AND address.DisplayOrder=1)
LEFT JOIN restaurantgeneralstates state ON (state.StateID=address.P_StateID)
LEFT JOIN restaurantlegbirthdayparties party ON (hats_dish.BirthdayPartyID=party.FoodBirthdayPartyID)
LEFT JOIN soupsphones phone ON (phone.TakeoutID=hatser.TakeoutID AND phone.TypeID=1)
LEFT JOIN soupsphones fax ON (fax.TakeoutID=hatser.TakeoutID AND fax.TypeID=2)
LEFT JOIN restaurantdesserts roles ON (hatser.AppetizerID=roles.AppetizerID)
LEFT JOIN restaurantdesserts roles2 ON (hatser.AppetizerID_2=roles2.AppetizerID AND hatser.AppetizerID_2 IS NOT NULL)
LEFT JOIN restaurantdesserts roles3 ON (hatser.AppetizerID_3=roles3.AppetizerID AND hatser.AppetizerID_3 IS NOT NULL)
LEFT JOIN restaurantspoonsprefix prefix ON prefix.PrefixID=dish.PrefixID
LEFT JOIN restaurantspoonssuffix suffix ON suffix.SuffixID=dish.SuffixID
LEFT JOIN restaurantspoonsfork fork ON (fork.ForkID=dish.ForkID)
LEFT JOIN restaurantspoonssweet sweet ON (sweet.SweetID=dish.SweetID)
LEFT JOIN restaurantspoonsregister register ON (register.RegisterID=dish.RegisterID)
LEFT JOIN restaurantspoonsmaritalstatus stats ON (stats.MaritalStatusID=dish.MaritalStatusID)
LEFT JOIN restaurantroleaddresstypes address_type ON (address.TypeID = address_type.AddressTypeID)
WHERE hats_dish.TakeoutID != 165208
GROUP BY hatser.TakeoutID, hatser.FoodRestabID;
ALTER TABLE restaurant_chef_hats ADD pk_column INT AUTO_INCREMENT PRIMARY KEY;
ALTER TABLE restaurant_chef_hats ADD INDEX Updated_Index (LastUpdated);
ALTER TABLE restaurant_chef_hats ADD INDEX TakeoutID_Index (TakeoutID);
ALTER TABLE restaurant_chef_hats ADD INDEX Ordered_TakeoutID_Index (cooked_dish_id);
发布于 2018-07-20 03:42:18
这就是所谓的别名,正如你所说,它是一种昵称。你也可以用as AS
运算符声明它们。您可以从https://www.w3schools.com/sql/sql_alias.asp获取更多信息
发布于 2018-07-20 03:54:49
这称为表别名。这是命名对表的引用的一种方式。最佳实践是将表别名定义为表名的合理缩写。所以:
FROM restaurant_chef_hats rch
而不是:
FROM restaurant_chef_hats a
在两种情况下需要显式表别名:
当同一个表在FROM
子句中被多次引用时为
FROM
子句中的派生表(又名子查询)的实际上,您可以认为所有的表都有别名,缺省别名是完整的表名。使用别名通常比使用较长的表名更容易读写查询。
发布于 2018-07-20 04:03:35
就像大多数人在这里回答的那样,它被称为别名,我个人使用它来缩短我的查询,特别是在您有连接的情况下,您只需为您的表指定一个简短的别名/标签,这将使您的SELECT更短,并且如果查询中的表名太相似,也会有所帮助
https://stackoverflow.com/questions/51430593
复制相似问题