0

我需要一些有关 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 中的“..”是什么意思?

谢谢。

4

1 回答 1

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将返回 a。

于 2013-04-18T21:52:49.993 回答