【发布时间】:2012-05-26 16:33:27
【问题描述】:
我有一个名为CharUser 的表有以下数据
UserID UserName UserPhone UserAddress
还有一个名为subscriptionjob的表
subID userId companyid
另一个名为用户UsersCvs的表有以下数据
CVId Companyuserid cvpath
我想对每一行进行如下查询
userid username userphone useraddress usercv
用户 ID 来自 subcriptionjob 表
我尝试了以下
第一个查询
SELECT CharUserId, CharUserName, CharUserPassword, CharUserMail, CharUserPhone, CharUserAddress, CharUserGender, ProgId, CharUserBirthdate
FROM CharUser
WHERE (CharUserId IN
(SELECT CompanyUserId
FROM SubsciptionJob
WHERE (JobId = 1)))
这是第二个查询
SELECT TOP (1) CvPath
FROM UsersCvs
WHERE (CompanyUserId IN
(SELECT CompanyUserId
FROM SubsciptionJob AS SubsciptionJob_1
WHERE (JobId = 1)))
ORDER BY CvId DESC
两者都可以单独工作 我试图将它们结合起来,但它不起作用
我想将 cvpath 列附加到第一个查询中,每行都有一个唯一值
有什么想法吗?
谢谢
【问题讨论】:
-
你不需要联合,你需要两个结果集之间的连接。
-
CompanyUserID 和 CharUserID 是同一个东西吗?为什么不在整个模型中一致地称它为 UserID 呢?为每一列加上它来自的表名的前缀通常会产生与预期相反的效果 - 它使您的代码更少自我记录。
标签: sql sql-server sql-server-2008 sql-server-2005