SQL Server 相当于 MySQL 的 USING

Posted

技术标签:

【中文标题】SQL Server 相当于 MySQL 的 USING【英文标题】:SQL Server equivalent of MySQL's USING 【发布时间】:2010-10-25 22:45:21 【问题描述】:

mysql 中,当您连接来自不同表的同名列时,您可以在连接中使用关键字 USING。例如,这些查询产生相同的结果:

SELECT * FROM user INNER JOIN perm USING (uid)
SELECT * FROM user INNER JOIN perm ON user.uid = perm.uid

SQL Server 中是否有等效的快捷方式?

【问题讨论】:

【参考方案1】:

不,必须使用:

SELECT * FROM user INNER JOIN perm ON user.uid = perm.uid

【讨论】:

【参考方案2】:

不,SQL Server 不支持这种快捷方式。

我想指出,即使这样做,像这样的快捷方式也不是一个好主意。我最近在一个数据库上工作,开发人员认为使用 *= and =* 快捷方式进行 RIGHT JOIN 和 LEFT JOIN 是一个好主意。好主意,直​​到有人将 SQL 兼容性级别升级到 90。然后它变成了一个非常糟糕的主意。

所以,向我们学习。捷径很糟糕。一点额外的打字永远不会杀死任何人。

【讨论】:

您的意思是*==*? SO 使用星号进行格式化。 是的,我的意思是 = 和 = - 谢谢马特 @MattSolnit USING(uid) 不是ON user.uid = perm.uid 的快捷方式,所以你无法判断,使用USING 是好是坏【参考方案3】:

另外,我会在您的选择语句中添加不要使用通配符“*” - 明确指定列名。

【讨论】:

没错,但我只是想通过一个简短的查询来举例说明 USING 的使用。此处的 SELECT 详细信息无关紧要。

以上是关于SQL Server 相当于 MySQL 的 USING的主要内容,如果未能解决你的问题,请参考以下文章

相当于 MySQL REGEXP 的 Microsoft SQL Server

相当于mySQL中的SQL Server函数SCOPE_IDENTITY()?

相当于 Sql Server 中的 MySQL ON DUPLICATE KEY UPDATE

Mysql迁移到Sql Server

Geoserver(三) shp导入mysql

SQL Server 相当于使用 JOIN 避免重复列