我有两张桌子。表A:
First_name Last_name score
Joo jojo 100
Jake Tim 30
表B:
Name length
Joo 3
Jake 4
Jojo 4
Tim 3
A的PK是FIrst和姓氏的连接,因为B pk是名称。如果我想打印这样的东西:
First_name Last_name score First_name_length Last_name_length
我应该如何解决以下代码:
Select A.*, B.length
From A,B
Where A.First_name=B.Name or A.Last_name=B.Name;
感谢。
更新:我通过@paqogomez从下面的答案稍作改动解决了这个问题。在访问中,使用双内连接,应该使用(),请查看此帖子。谢谢大家的帮助。
答案 0 :(得分:1)
两次加入你的名字表就可以做到这一点:
select
b1.name as First_name,
b2.name as Last_name,
a.score as score,
b1.length as First_name_length,
b2.length as Last_name_length
from
(a
inner join b as b1 on a.First_name = b1.name)
inner join b as b2 on a.Last_name = b2.name
然而,您遇到的问题是,如果2个人拥有相同的名字或姓氏。最好是清理数据并为每个用户提供唯一的值。
编辑:
我假设您要使用表B
中的值,如果您真的只是获取名称的字符串长度,那么请使用@ Srikanth的答案。
当OP使用Access时,我使用sql server来显示它this fiddle。
添加了上面的Parens答案 1 :(得分:1)
以下代码Len足以满足所需的输出
Select First_name,
Last_name,
score,
len(First_name) AS First_name_length,
len(Last_name) AS Last_name_length
From A