【问题标题】:Get multiple records for the same row of master table获取主表同一行的多条记录
【发布时间】:2013-12-03 15:17:47
【问题描述】:

嗨朋友们,我在 SQL 表中遇到以下情况 我有两个表,需要一个表来查询它们。 表 1 是 USER 表(Master)。

USERID   USERNAME   EMAILADD    
 113       name1     q@q.com
 114       name2     b@bcom

以下是第二个查找表

userid districtid schoolid schoolNAme radius
 113    12332       35831    Fort       1.0 
 113    2332        35832    Spring     1.0 
 114    2334        35831    Spring     1.0 

以下是我的要求

userid   username    emailadd   schoolid
  113      name1       q@q.com    35831
  113      name1       q@q.com    35832
  114      name2       b@b.com    35831

我尝试了以下查询

SELECT userID , userNAME, emailadd, phone, 
    (SELECT schoolid from Lookup 
           where UserID IN(select distinct userid from users)) schoolid 
FROM Users 

但它根本不起作用。我是 SQL Server 的新手,任何人都可以建议一种更好的方法来实现结果。

【问题讨论】:

    标签: sql sql-server database join case


    【解决方案1】:

    使用join 连接表

    SELECT u.userID, u.userNAME, u.emailadd, u.phone, l.schoolid
    FROM Users u
    inner join Lookup l on u.userid = l.userid
    

    【讨论】:

      【解决方案2】:

      使用简单的 JOIN,

      SELECT
          Users.userid,username,emailadd,schoolid
      FROM
          Users 
      INNER JOIN Lookup ON Users.userid = Lookup .userid
      

      如果您只需要选择,您甚至可能想要使用“WITH(NOLOCK)”,并且如果您需要遍历的记录更多

      【讨论】:

      • + 我花了很长时间才回复哈哈,不知道为什么这被否决了?
      • 我投了反对票:使用nolock 不会影响返回的记录数。
      • ofc 不是吗?为什么会这样?
      • 哦“而且会有更多的记录”抱歉你错过了阅读它,因为它说它是如何改变它的,意思是说如果有很多记录那么你“可能”想要使用它
      • 改了,希望能说明我的意思
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 2014-03-06
      • 2023-04-08
      相关资源
      最近更新 更多