确认左连接sybase查询的结果

时间:2013-04-18 21:50:13

标签: sql database sybase

我需要一些sybase sql语法的帮助。在离开sql多年后,经历了一些示例问题。给出以下两个sybase表结构和数据:

表名:用户

| name | salary |
| joe  | 100000 |
| nick | 10000  |

表名:user_data

| name | percent |
| joe  | 0.67    |

以及以下查询:

select u.name, ud.percent from users u, user_data ud where u.name *= ud..name
我正确地认为输出将是:

| name | percent |
| joe  | 0.67    |
| nick | NULL    |

基于* =表示左连接的原因?

我遇到的另一个问题是ud..name中的'..'是什么意思?

感谢。

1 个答案:

答案 0 :(得分:3)

是的,这是旧的JOIN语法,已被ANSI JOIN语法替换。应该写下查询:

select u.name, ud.percent 
from users u
left join user_data ud 
  on u.name = ud.name

即使users表中没有匹配的行,此查询也会返回表中的所有user_data。对于那些不在表格中的行,将返回null

相关问题