MySQL - 加入的特定列?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/6826342/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 20:36:57  来源:igfitidea点击:

MySQL - specific columns on join?

mysqlsql

提问by Mathias Lykkegaard Lorenzen

When making a join (inner, left outer, right outer or whatever), how can I specify which columns on the table to join into the original table?

在进行连接(内部、左外部、右外部或其他)时,如何指定表中的哪些列要加入原始表?

Consider the following example:

考虑以下示例:

SELECT FirstName FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID

This would select FirstName from user, but select everything from Provider. How can I specify which parts of Provider should be included in the resultset?

这将从用户中选择名字,但从提供者中选择所有内容。如何指定 Provider 的哪些部分应包含在结果集中?

回答by Tudor Constantin

This will only include User.FirstNameand Provider.ProviderIDin the final resultset:

这将只包括User.FirstNameProvider.ProviderID在最终结果集中:

SELECT User.FirstName, Provider.ProviderID FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID

回答by Thomas

  SELECT User.FirstName, Provider.ID, Provider.YourExtraColumnname, Provider.YourExtraColumnname2 FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID

回答by Shef

         SELECT `User`.FirstName, Provider.* 
           FROM `User`
LEFT OUTER JOIN Provider 
             ON `User`.ProviderID = Provider.ID

1. You use the table name before the column, or if you alias your tables, you can use the alias.

1. 您在列之前使用表名,或者如果您为表设置别名,则可以使用别名。

E.g. LEFT OUTER JOIN Provider pand then you could access providers id on the select clause like this:

例如LEFT OUTER JOIN Provider p,然后您可以在 select 子句上访问提供者 ID,如下所示:

 SELECT `User`.FirstName, p.ID

2. I added backticks around the table name User, because it is a reserved word for MySQL

2.我在表名周围加了反引号User,因为它是MySQL的保留字

回答by Shamim Hafiz

You can specify the specific items to choose, like:

您可以指定要选择的特定项目,例如:

SELECT User.FirstName, Provider.ID, Provider.Name FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID