SQL的两位下方得到相同的结果SQL内部联接语法
SELECT c.name, o.product
FROM customer c, order o
WHERE c.id = o.cust_id
AND o.value = 150
SELECT c.name, o.product
FROM customer c
INNER JOIN order o on c.id = o.cust_id
WHERE o.value = 150
我见过使用在不同的企业标准两种风格。从我看到的,第二个是大多数人在网上推荐的。除了风格之外,这有没有真正的原因?使用Inner Join有时会有更好的性能吗?
我注意到Ingres和Oracle开发人员倾向于使用第一种风格,而Microsoft SQL Server用户倾向于使用第二种风格,但这可能只是巧合。
感谢您的任何见解,我想了解这一段时间。
编辑:我改变了'SQL Inner Join与Cartesian Product'的标题,因为我使用的是不正确的terminolog。感谢迄今为止的所有回应。
ANSI JOIN语法中的一些错误不是我称之为“早期”的错误。在之前我们做过大量查询的工作中,如果使用ANSI JOIN语法,我们会在查询中可能存在的总列数上受到严格限制。你会发现,至少在10g发布时还有问题。 – 2012-08-28 12:56:18
是的,我仍然不使用ANSI连接。 – 2012-08-28 13:41:48