没有直接链接的表的SQL表查询

时间:2016-09-06 13:20:11

标签: sql

我的Table_A有一列:'FullName',columnB,..和其他列

我的Table_B有列:'FirstName','LastName','Job_OID'

显然,如果我们加入FirstNameLastName的字符,则会匹配Full_Name

这是这两个表之间唯一的共同点!

问题:当Table_A中的全名是“John Smith”时,我想从table_B中获取他的Job_OID。

用简单的语言, 从table_B中选择job_oid('FirstName'+'LastName')= Table_A.FullName;

3 个答案:

答案 0 :(得分:1)

试试这个:

SELECT job_oid 
FROM table_B 
JOIN Table_A ON Table_A.FullName = Table_B.FirstName+' '+TableB.LastName

答案 1 :(得分:1)

您也可以这样编写查询:

SELECT B.job_oid 
FROM Table_A  A
INNER JOIN table_B  B ON A.FullName = CONCAT(B.FirstName, ' ', B.LastName)

答案 2 :(得分:0)

我认为,您必须规范化您的数据库,但如果不可能,您可以编写以下查询:

SELECT B.*
FROM Table_B B
WHERE EXISTS
    (SELECT 'PERSON'
    FROM Table_A A
    WHERE B.FirstName + ' ' + B.LastName = A.FullName)

您可以使用JOIN这样的命令:

SELECT B.*
FROM Table_B B
JOIN Table_A A
    ON B.FirstName + ' ' + B.LastName = A.FullName

因此,通过这种方式,您可以链接两个表,其中包含两个字段(Table_B的FirstName和LastName)的串联,FullName存储在Table_A中