Access SQL从链接表中选择多列

Access SQL从链接表中选择多列,sql,ms-access,Sql,Ms Access,我有两张桌子。表A: First_name Last_name score Joo jojo 100 Jake Tim 30 表B: Name length Joo 3 Jake 4 Jojo 4 Tim 3 A的主键是名字和姓氏的连接,B的主键是名字。如果我想打印这样的内容: First_name Last_name score First_name_length Last_name_length

我有两张桌子。表A:

First_name Last_name score 
   Joo      jojo      100
   Jake      Tim       30
表B:

Name  length
Joo     3
Jake    4
Jojo    4
Tim     3
A的主键是名字和姓氏的连接,B的主键是名字。如果我想打印这样的内容:

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对下面的答案稍作修改就解决了这个问题。在access中,使用双内连接时,应该使用(),请查看此帖子。谢谢你们的帮助


两次加入您的姓名表将完成以下任务:

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
然而,你会遇到的问题是,如果两个人的名字或姓氏相同。最好是清理您的数据并为每个用户提供唯一的值

编辑:

我假设您想使用表
B
中的值,如果您真的只是得到名称的字符串长度,那么请使用@Srikanth的答案

OP使用Access时,我使用sql server进行了测试,结果表明它工作正常

上面为

添加的参数以下代码足以满足所需的输出

Select First_name, 
       Last_name, 
       score,  
       len(First_name) AS First_name_length, 
       len(Last_name) AS Last_name_length
From A

英雄联盟我甚至没有想到他只是在寻找字串的长度。如果是这样的话,这就是答案+1是的,最初我想使用两个类似于您的联接,但再看一眼表B中的数据,我觉得这应该可以完成这项工作。这可能只是一个糟糕的示例数据,但我们需要OP的澄清才能确定。感谢您的回答。真的让我大开眼界。但我不是只寻找字符串长度,只是想知道如何从链接表中选择列。但是你的答案确实是一个捷径和明智的想法。请澄清表B是否用于存储第一个/最后一个名称的长度是的,B用于存储纵向名称。在这种情况下,我的答案是获得所需结果的最简单查询。在我看来,困难的部分是我不知道如何处理表B,因为A.last_name和A.First_name都与之相关。谢谢,内部连接似乎是最好的选择。它返回语法错误,我应该先定义b1还是b2?再次感谢似乎不喜欢第二个内部连接,请在它们之间添加“?”?谢谢。@Hendooqian不,您在OP中使用的是较旧的sql 89语法。对于
内部联接(sql 92语法),表之间没有逗号。你可以在我贴的提琴上看到它在起作用。我知道现在发生了什么。Access使用不同格式的双内连接,请检查我的更新。再次感谢。