首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么SQL语句"select * from gifts JOIN sentgifts (giftID);“中的()是强制性的?

问为什么SQL语句"select * from gifts JOIN sentgifts (giftID);“中的()是强制性的?
EN

Stack Overflow用户
提问于 2010-04-24 21:22:34
回答 2查看 186关注 0票数 1

为什么SQL语句中的()是必需的

代码语言:javascript
复制
select * from gifts INNER JOIN sentgifts using (giftID); 

?()通常用于指定某物的分组。但在这种情况下,我们是否应该能够使用2个或更多字段名...?在上面的示例中,可以清楚地看到它是1个字段,只是解析器没有在它都被清除时绕过()吗?(如Ruby语言)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-24 21:32:08

是的,您可以在using子句中指定多个列,如下所示。

代码语言:javascript
复制
using(col_1,col_2,col_3)
票数 1
EN

Stack Overflow用户

发布于 2010-04-24 21:32:00

实际上,您可以指定列的列表,请检查here。

它是强制性的,因为语法异常会破坏解析器,并对性能造成不良影响。

也就是说,有人可能会争辩说,使用本身已经是语法糖,它只是在连接的表的列名相同的情况下使用normal ON语法指定连接的快捷方式。

因为您可以使用在多个列上连接,所以可以做同样的事情。

以下语句是,因此与等价的

代码语言:javascript
复制
SELECT A.c1, A.c2, A.c3 FROM TABLE_A A
JOIN TABLE_B B 
ON A.c1 = B.c1 
ON A.c2 = B.c2 
ON A.c3 = B.c3

和

代码语言:javascript
复制
SELECT A.c1, A.c2, A.c3 FROM TABLE_A A
JOIN TABLE_B B 
USING (c1,c2,c3)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2704587

复制
相关文章

相似问题

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