我正在维护一些在查询Sybase数据库时使用*=运算符的代码,但我找不到相关文档.有谁知道*=做什么?我认为它是某种联接.
select * from a, b where a.id *= b.id
我无法弄清楚这与以下有何不同:
select * from a, b where a.id = b.id
Adam Tegen.. 13
来自http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde160.htm:
内外表
术语外表和内表描述了表在外连接中的位置:
在左连接中,外表和内表分别是左表和右表.外表和内表也分别称为行保留和空表.
在右连接中,外表和内表分别是右表和左表.
例如,在下面的查询中,T1是外部表,T2是内部表:
T1离开加入T2
T2右连接T1
或者,使用Transact-SQL语法:
T1*= T2
T2 =*T1
angry person.. 9
它表示外连接,简单=表示内连接.
*= is LEFT JOIN and =* is RIGHT JOIN.
(反之亦然,我一直忘记,因为我不再使用它,谷歌在搜索*=时没有帮助)
来自http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc34982_1500/html/mig_gde/mig_gde160.htm:
内外表
术语外表和内表描述了表在外连接中的位置:
在左连接中,外表和内表分别是左表和右表.外表和内表也分别称为行保留和空表.
在右连接中,外表和内表分别是右表和左表.
例如,在下面的查询中,T1是外部表,T2是内部表:
T1离开加入T2
T2右连接T1
或者,使用Transact-SQL语法:
T1*= T2
T2 =*T1
它表示外连接,简单=表示内连接.
*= is LEFT JOIN and =* is RIGHT JOIN.
(反之亦然,我一直忘记,因为我不再使用它,谷歌在搜索*=时没有帮助)
当然,你应该这样写:
SELECT * FROM a LEFT JOIN b ON b.id=a.id
a,b语法是邪恶的.
ANSI-82语法
select * from a , b where a.id *= b.id
ANSI-92
select * from a left outer join b on a.id = b.id