我只是好奇为什么*=
运算符 forleft outer join
和 '=*' for 'right outer join 被从 SQL 标准中取出,或者,至少 SQL Server 2005 及更高版本不支持?我已阅读有关此特定运算符的其他一些帖子,并了解它可能会产生一些意想不到的结果。但是,如果它在语义上是等效的,我认为在必须连接多个表时使用它会更容易。如果有的话,我宁愿使用这个运算符来动态创建 sql 查询,而不是试图获得正确的词序,例如:
FROM accounts
LEFT OUTER JOIN customers
ON accounts.accountnum = customers.accountnum
LEFT OUTER JOIN products
ON customers.accountnum = products.accountnum
AND customers.id = products.customerid
在哪里
FROM accounts, customers, products
WHERE accounts.accountnum *= customers.accountnum AND
customers.accountnum *= products.accountnum AND
customers.id *= products.customer.id
似乎更容易一起解析。
但回到现实世界,如果这些运算符不执行“真正的”外连接,他们的想法是什么?Short Hand 一词意味着它应该做完全相同的事情,但在这种情况下显然不是。