首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MySQL查询中,FROM后面的第二个单词是什么意思?

在MySQL查询中,FROM后面的第二个单词是什么意思?
EN

Stack Overflow用户
提问于 2018-07-20 03:39:40
回答 3查看 67关注 0票数 0

我正在开发的一个遗留应用程序有一个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数据库。下面是完整的查询,其中的表名/列名发生了更改。在本例中,我的问题与单词hatserFROM 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);
EN

回答 3

Stack Overflow用户

发布于 2018-07-20 03:42:18

这就是所谓的别名,正如你所说,它是一种昵称。你也可以用as AS运算符声明它们。您可以从https://www.w3schools.com/sql/sql_alias.asp获取更多信息

票数 3
EN

Stack Overflow用户

发布于 2018-07-20 03:54:49

这称为表别名。这是命名对表的引用的一种方式。最佳实践是将表别名定义为表名的合理缩写。所以:

FROM restaurant_chef_hats rch

而不是:

FROM restaurant_chef_hats a

在两种情况下需要显式表别名:

当同一个表在FROM子句中被多次引用时为

  1. FROM子句中的派生表(又名子查询)的

实际上,您可以认为所有的表都有别名,缺省别名是完整的表名。使用别名通常比使用较长的表名更容易读写查询。

票数 2
EN

Stack Overflow用户

发布于 2018-07-20 04:03:35

就像大多数人在这里回答的那样,它被称为别名,我个人使用它来缩短我的查询,特别是在您有连接的情况下,您只需为您的表指定一个简短的别名/标签,这将使您的SELECT更短,并且如果查询中的表名太相似,也会有所帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51430593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档