【发布时间】:2011-10-13 04:05:52
【问题描述】:
在进行连接(内、左外、右外或其他)时,如何指定表上的哪些列要连接到原始表中?
考虑以下示例:
SELECT FirstName FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID
这将从用户中选择名字,但从提供者中选择所有内容。如何指定 Provider 的哪些部分应包含在结果集中?
【问题讨论】:
在进行连接(内、左外、右外或其他)时,如何指定表上的哪些列要连接到原始表中?
考虑以下示例:
SELECT FirstName FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID
这将从用户中选择名字,但从提供者中选择所有内容。如何指定 Provider 的哪些部分应包含在结果集中?
【问题讨论】:
这只会在最终结果集中包含User.FirstName 和Provider.ProviderID:
SELECT User.FirstName, Provider.ProviderID FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID
【讨论】:
SELECT User.FirstName, Provider.ID, Provider.YourExtraColumnname, Provider.YourExtraColumnname2 FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID
【讨论】:
SELECT `User`.FirstName, Provider.*
FROM `User`
LEFT OUTER JOIN Provider
ON `User`.ProviderID = Provider.ID
1。您在列之前使用表名,或者如果您为表设置别名,则可以使用别名。
例如LEFT OUTER JOIN Provider p 然后您可以像这样访问 select 子句中的提供者 ID:
SELECT `User`.FirstName, p.ID
2。我在表名User 周围添加了反引号,因为它是 MySQL 的保留字
【讨论】:
您可以指定要选择的具体项目,例如:
SELECT User.FirstName, Provider.ID, Provider.Name FROM User LEFT OUTER JOIN Provider ON User.ProviderID = Provider.ID
【讨论】: