我需要一些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中的'..'是什么意思?
感谢。
答案 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
。