加入非关键属性的含义是什么? 有什么例子吗?
我只知道使用另一个表的主键连接一个表的外键的情况。
这是连接关键属性的情况,不是吗?
那么加入非关键属性的情况是什么?
http://en.wikipedia.org/wiki/Join_(SQL) 这里的例子就像我上面提到的那样。
答案 0 :(得分:1)
我只知道使用另一个表的主键连接一个表的外键的情况。
是的,这是最常见且最优化的一个。但是,它不是唯一的:您可以根据任意条件使用连接“连接”到另一个表(甚至同一个表)中的行。
这是一个非等值的简单例子:
insert into shirt_size (size_from, size_to, size_code) values (18, 19, 'Small');
insert into shirt_size (size_from, size_to, size_code) values (20, 21, 'Medium');
insert into shirt_size (size_from, size_to, size_code) values (22, 23, 'Large');
insert into shirt_size (size_from, size_to, size_code) values (24, 25, 'XL');
SELECT g.name, s.size_code
FROM guest g
LEFT OUTER JOIN shirt_size s ON g.size >= s.size_from AND g.size <= s.size_to
您也可以使用BETWEEN
运算符来表示条件:
SELECT g.name, s.size_code
FROM guest g
LEFT OUTER JOIN shirt_size s ON g.size BETWEEN s.size_from AND s.size_to
在这两种情况下,加入都发生在连接条件两侧的非键属性上。