当前位置: 代码迷 >> Sql Server >> 请求帮忙改一条SQL语句,该怎么处理
  详细解决方案

请求帮忙改一条SQL语句,该怎么处理

热度:19   发布时间:2016-04-24 10:01:18.0
请求帮忙改一条SQL语句

select *,Price=(SELECT TOP 1 Price FROM Product 
WHERE PartNumber=a.[type]) from goods a where id='121'


这个子查询如果要查询两列值怎么改呢?还有这个SQL语句可以优化下嘛

Price=(SELECT TOP 1 Price FROM Product WHERE PartNumber=a.[type]) 


SELECT TOP 1 Price,weight FROM Product WHERE PartNumber=a.[type]

------解决方案--------------------
 select a.*,b.Price,b.weight from goods a left join 
 (select rn=ROW_NUMBER() over (partition by PartNumber order by getdate()), PartNumber,Price,weight from Product) b
 on b.PartNumber=a.[type] and b.rn='1' where a.id='121' 
------解决方案--------------------
select *,b.price,b.weight from goods a left join Product b on a.type=b.type where a.id=12   
这个应该可以。
你的PartNumber是什么,表中好像没有这个字段。
------解决方案--------------------
需要显示没的匹配的时候的记录加LEFT 为啥不行。你需要ID=12的记录。ID为主键肯定1条
然后和PRODUCT连接也是1对1的关系。那么最终肯定只有一条啊。怎么会有很多条。
就看ID=12那条记录的TYPE 值在PRODUCT里面存在不存在。存在显示一条。不存在。也显示一条
不过后面2列为空值而已。为啥会有很多条?
你能把你的查询结果贴出来吗?
  相关解决方案