sybase 下sql查询语句问题
如表A:codename1zhang2wang表B:codenote188怎么样查询才能使得结果为codenamenote1zhang882wangNULL甚至如果B表为...
如表A:code name
1 zhang
2 wang
表B: code note
1 88
怎么样查询才能使得结果为
code name note
1 zhang 88
2 wang NULL
甚至如果B表为空,结果为
code name note
1 zhang NULL
2 wang NULL
是在sybase下,left join 行不通 展开
1 zhang
2 wang
表B: code note
1 88
怎么样查询才能使得结果为
code name note
1 zhang 88
2 wang NULL
甚至如果B表为空,结果为
code name note
1 zhang NULL
2 wang NULL
是在sybase下,left join 行不通 展开
1个回答
展开全部
使用外联接。
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件,数据库管理系统将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。
根据您说的情况,SQL如下:
SELECT A.code, A.name, B.note FROM A LEFT JOIN B ON A.code=B.code;
如果您使用的是Sybase数据库,那么这个SQL应该这样写:
SELECT A.code, A.name, B.note FROM table_a A, table_b B WHERE A.code *= B.code;
注意:用*=代替LEFT JOIN。
如果您使用11.9.2及以上的Sybase版本,还可以这样写:
SELECT A.code, A.name, B.note FROM A LEFT OUTER JOIN B ON A.code = B.code;
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件,数据库管理系统将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。
根据您说的情况,SQL如下:
SELECT A.code, A.name, B.note FROM A LEFT JOIN B ON A.code=B.code;
如果您使用的是Sybase数据库,那么这个SQL应该这样写:
SELECT A.code, A.name, B.note FROM table_a A, table_b B WHERE A.code *= B.code;
注意:用*=代替LEFT JOIN。
如果您使用11.9.2及以上的Sybase版本,还可以这样写:
SELECT A.code, A.name, B.note FROM A LEFT OUTER JOIN B ON A.code = B.code;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询