Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从另一个表中具有id的表中选择名称?_Sql_Sql Server - Fatal编程技术网

Sql 如何从另一个表中具有id的表中选择名称?

Sql 如何从另一个表中具有id的表中选择名称?,sql,sql-server,Sql,Sql Server,我有两张表格:用户信息和公司信息 表用户信息: 表公司信息: 如何从表格user_info中获取用户名,即用户名,而不是表格company_info中的CreatedBy和ModifiedBy 即 我试过这个: select A.companyid, A.companyname, B.username as CreatedBy, ModifiedBy from company_info A inner join user_inform B on (A.CreatedBy = B.user

我有两张表格:用户信息和公司信息

表用户信息:

表公司信息:

如何从表格user_info中获取用户名,即用户名,而不是表格company_info中的CreatedBy和ModifiedBy

我试过这个:

select A.companyid, A.companyname, B.username as CreatedBy, ModifiedBy
from company_info A
inner join user_inform B
    on (A.CreatedBy = B.userid)
请尝试以下查询:

SELECT *
FROM table1
JOIN User_table T1 ON table1.CreatedBy = T1.userid
LEFT JOIN User_table T2 ON table1.ModifiedBy= T2.userid

上面的门厅很近:

SELECT
    c.companyid, c.companyname, u_c.username AS CreatedBy, u_m.username AS ModifiedBy
FROM 
    (company_info c INNER JOIN user_info u_c ON company_info.CreatedBy = u_c.userid)
    LEFT JOIN user_info u_m ON company_info.ModifiedBy = u_m.userid
左键连接用户信息表两次。第一次获取用户创建的,第二次获取用户修改的

select ci.companyid, ci.companyname, uc.username CreatedBy, um.username ModifiedBy
from company_info ci
left join user_info uc on ci.CreatedBy = uc.userid
left join user_info um on ci.ModifiedBy = um.userid

左键连接,以防其中一个用户丢失。

一眼望去,外键和连接……您尝试了什么?@Tim,外键用于数据一致性,选择时没有什么区别。您的连接条件看起来有点…关闭…更不用说查询不会生成OP要查找的输出。@Mansoor将nvarchar值“username”转换为数据类型时,其给出的错误转换失败int@Mansoor它不来了它还是以int格式来的itself@Suhas,检查您的CreatedBy、ModifiedBy、userid字段数据类型。所有字段的数据类型是否都相同,即INT…?其提交错误,即通过一个内部联接和一个左联接为每个ModifiedBy和CreatedBy显示A?我在这两种情况下都选择了相同的类型。我为CreatedBy进行了内部联接,因为我假设每个记录都是由某人创建的。我为ModifiedBy做了一个左连接,因为记录可能没有被任何人修改,所以它可能是空的。我犯了一个错误——忘了给公司提供c的别名。它固定在上面。
SELECT *
FROM table1
JOIN User_table T1 ON table1.CreatedBy = T1.userid
LEFT JOIN User_table T2 ON table1.ModifiedBy= T2.userid
SELECT
    c.companyid, c.companyname, u_c.username AS CreatedBy, u_m.username AS ModifiedBy
FROM 
    (company_info c INNER JOIN user_info u_c ON company_info.CreatedBy = u_c.userid)
    LEFT JOIN user_info u_m ON company_info.ModifiedBy = u_m.userid
select ci.companyid, ci.companyname, uc.username CreatedBy, um.username ModifiedBy
from company_info ci
left join user_info uc on ci.CreatedBy = uc.userid
left join user_info um on ci.ModifiedBy = um.userid