我正在尝试根据数据库从数据库中显示一些记录。在这种情况下,当我执行select查询时,我想基于ID(column1)显示名称(column2),并且我收到此错误。
Msg 8114,Level 16,State 5,Line 1 将数据类型varchar转换为数字
时出错
我知道转换有问题,我正在寻找基于此错误的答案,但找不到任何东西。一点帮助?
查询我尝试过的内容:
select part1
from primar
where id='1' and id in (select name from primar2)
数据如下:
ID Name
=== ===
1 Mike
2 John
3 Mary
4 Anne
5 Jack
后来编辑:也许我解释错了。上面示例中的ID
列属于Table1
,每个ID
都有一个名称相关联。在Table2
中还有一些其他记录,其中包括来自ID
的{{1}}。我在Table1
上运行SELECT查询,我想显示Table2
中找到的ID的名称,而不是ID本身。
答案 0 :(得分:3)
如果我理解你的问题,可能是你在where子句中使用了错误的字段。代替id,你必须在
中使用名字select part1
from primar
where id=1 and ID in (select Id from primar2)
答案 1 :(得分:1)
您可以使用 INNER JOIN 获取所需的输出。摆脱 id =' 1'
中的引号SELECT
p.part1
FROM
primar p INNER JOIN primar2 p2 ON p.Id =p2.Id
WHERE
p.Id =1
答案 2 :(得分:0)
你必须摆脱id = '1'
SELECT part1 FROM primar WHERE id = 1 AND id IN (SELECT id FROM primar2)
答案 3 :(得分:0)
我相信你正在寻找内心联盟;
SELECT
t1.*
,t2.name
FROM table1 t1
INNER JOIN table2 t2
ON t1.ID = t2.user_id
WHERE p.id = '1'
这将为tablein提供表2中匹配的所有内容,并返回名称。在没有看到您的架构的情况下,我在连接字段中进行了猜测,因此如果需要,可能需要更新。