SQL查询符号“*=”

发布于 2024-10-26 23:08:22 字数 111 浏览 2 评论 0原文

SELECT 语句中的符号 "*=" 代表什么?这对性能有何影响?我们可以用 JOINS 替换它吗?

谢谢 STR

What does the symbol "*=" stand for in a SELECT statement? How does this affect the performance? Can we replace it with JOINS?

Thanks
STR

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空心空情空意 2024-11-02 23:08:22

在某些数据库系统中,

SELECT ... FROM a, b WHERE a.field1 *= b.field2

LEFT OUTER JOIN 是一种旧语法:

SELECT ... FROM a LEFT JOIN b ON a.field1 = b.field2

Microsoft SQL Server,例如 认为自版本以来不推荐使用 *= 语法2005 年

所以是的,您可以用 JOIN 替换 *=。事实上,您应该。 (我怀疑它会以任何相关方式影响性能,但您的查询可能会在较新版本的数据库引擎中停止工作。)

In some database systems,

SELECT ... FROM a, b WHERE a.field1 *= b.field2

is an old syntax for a LEFT OUTER JOIN:

SELECT ... FROM a LEFT JOIN b ON a.field1 = b.field2

Microsoft SQL Server, for example, considers the *= syntax to be deprecated since version 2005.

So yes, you can replace *= with a JOIN. In fact, you should. (I doubt that it affects performance in any relevant way, but your queries might stop working in newer versions of your database engine.)

捎一片雪花 2024-11-02 23:08:22

在 SQL 的某些实现中,具有赋值运算符 (=) 的 SELECT 语句可用于创建列标题和定义列值的表达式之间的关系。

例如:

SELECT name = 'renamed_column_name'
FROM users

更多信息:

不幸的是,= 运算符既可以表示赋值也可以表示相等。

对于赋值:

DECLARE @Counter INT;
SET @Counter = 1;

对于相等:

= 是一个相等运算符,规定左侧必须等于右侧。

这可能意味着值必须等于子查询返回的结果,或者变量必须等于文字,无论情况如何... a = b 意味着 a 和 b 必须具有相同的值。

SELECT * FROM users LEFT JOIN posts ON users.id = posts.user_id

In some implementations of SQL, a SELECT statement that has a assignment operator(=) can be used to create the relationship between a column heading and the expression that defines the values for the column.

So an example might be:

SELECT name = 'renamed_column_name'
FROM users

More Info:

Unfortunately the = operator can mean both assign and equality.

For assignment:

DECLARE @Counter INT;
SET @Counter = 1;

For equality:

The = is a equality operator states that the left side must equal the right side.

The could mean a value must equal the result returned by a subquery, or a variable must equal a literal, no matter the case... a = b means that a and b have to have the same value.

SELECT * FROM users LEFT JOIN posts ON users.id = posts.user_id
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文