【问题标题】:select data from two tables using simple sql query使用简单的 sql 查询从两个表中选择数据
【发布时间】:2016-01-11 06:58:08
【问题描述】:

如果我有以下查询

if not exists(select * from DeliveryTemplate where TemplateId=2)
                begin                                       
                    select usersCode, 1,2,'User {UsersCode}',' hello {Username},', null 
                    from User
                end

如何扩展此查询以便从 DeliveryTemplate 表中多选择一列 DeliveryCode

【问题讨论】:

  • User 和 DeliveryTemplate 有关系吗?
  • 是的,DeliveryTemplate 有 UserId 列。
  • 检查以下答案:-)

标签: sql .net sql-server tsql


【解决方案1】:

所以你需要使用JOIN 类似的东西:

if not exists(select * from DeliveryTemplate where TemplateId=2)
                begin 
                   select u.usersCode, 1,2,'User {UsersCode}',' hello {Username},', null, dt.DeliveryCode 
                   from User u
                   left join DeliveryTemplate dt on u.Id = dt.UserId
                end

【讨论】:

  • 你需要在重现不存在的地方添加一些东西
【解决方案2】:
declare @count int
declare @DeliveryCode nvarchar(100)
select @count = count(*), 
       @DeliveryCode = DeliveryCode 
       from DeliveryTemplate 
       where TemplateId=2

if @count = 0 
begin                                       
 select usersCode, 
        1, 
        2,
        'User {UsersCode}', 
        'hello {Username},',
        null,
       @DeliveryCode AS 'DeliveryCode'
       from User
end

【讨论】:

    【解决方案3】:

    这应该使用 INNER JOIN 完成如下:

    SELECT usersCode, 1,2,'User {UsersCode}',' hello {Username},', null, DeliveryCode
    FROM User 
    INNER JOIN DeliveryTemplate ON User.ID=DeliveryTemplate.UserId 
    WHERE TemplateId=2 
    

    【讨论】:

      【解决方案4】:
      if not exists(select * from DeliveryTemplate where TemplateId=2)
                  begin                                       
                    select usersCode, 1,2,'User {UsersCode}',' hello {Username},', null, DeliveryCode
                    from User AS u
                    INNER JOIN DeliveryTemplate AS d
                    ON u.ID = d.UserID
                  end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-05
        • 1970-01-01
        • 2014-09-17
        • 1970-01-01
        相关资源
        最近更新 更多