我有一群人参加了考试。我可以使用以下查询选择他们的 ID:
SELECT person_id
FROM tests
WHERE test_code = 1234
我想从人口统计表中提取这些人的记录,所以我尝试了这个子查询:
SELECT *
FROM demographics d
WHERE d.person_id IN (
SELECT t.person_id
FROM tests t
WHERE t.test_code = 1234
)
...但我没有得到任何结果。如果我从(功能)子查询中获取几个 ID 并将它们硬编码到 IN 标准中:
SELECT *
FROM demographics d
WHERE d.person_id IN (01123, 58132)
...查询有效。我必须在这里遗漏一些非常基本的东西——你知道它是什么吗?
可能的复杂因素:t.person_id 是 char13,d.person_id 是 varchar50。这是 MS SQL Server 9.0.4035;我在 SQL Server Management Studio 工作。