select dbo.ShopInfo.shopName,dbo.UserInfo.userName from dbo.ShopInfo,dbo.UserInfo,dbo.OrderInfo
where dbo.OrderInfo.userId =(SELECT[userId] FROM [CTM_DB].[dbo].[OrderInfo] where [orderId] =1) and  dbo.OrderInfo.shopId = (SELECT [userId]
      ,[shopId]
  FROM [CTM_DB].[dbo].[OrderInfo] 
  where [orderId] =1)
GO

解决方案 »

  1.   

    都不知道你要干啥、、、、那里错了。。  貌似你好像用到表连接了但是没有 join ..不知道是不是2012新语法?
      

  2.   

    这不就是个sql语句吗,怎么了
      

  3.   


    dbo.OrderInfo.shopId = (SELECT [userId]
      ,[shopId] 多写了个条件吧
      FROM [CTM_DB].[dbo].[OrderInfo]  
      where [orderId] =1)
      

  4.   

    dbo.ShopInfo,dbo.UserbInfo,dbo.OrderInfo这三个table先链接起来,再加查询条件.
      

  5.   

    子查询用in()
    select dbo.ShopInfo.shopName,dbo.UserInfo.userName from dbo.ShopInfo,dbo.UserInfo,dbo.OrderInfo
    where dbo.OrderInfo.userId in(SELECT[userId] FROM [CTM_DB].[dbo].[OrderInfo] where [orderId] =1) and dbo.OrderInfo.shopId in (SELECT [userId]
      ,[shopId]
      FROM [CTM_DB].[dbo].[OrderInfo]  
      where [orderId] =1)
    GO或者 top1掉
      

  6.   

    用inner join连接3表就完了啊