Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 为以下场景设计查询_.net_Sql_Sql Server_Tsql_Stored Procedures - Fatal编程技术网

.net 为以下场景设计查询

.net 为以下场景设计查询,.net,sql,sql-server,tsql,stored-procedures,.net,Sql,Sql Server,Tsql,Stored Procedures,我有两张桌子——表1: id name number ------------------ 1 x1 123 2 x2 234 …和表2: tbl1id title rank -------------------- 1 t1 3 1 t2 2 2 t1 3 1 t3 1 有没有一种方法可以让我加入他们,返回基于给定用户的最小排名显示最大标题的结果: id name num

我有两张桌子——表1:

id  name  number
------------------
1   x1    123
2   x2    234
…和表2:

tbl1id  title  rank
--------------------
1       t1      3
1       t2      2
2       t1      3
1       t3      1
有没有一种方法可以让我加入他们,返回基于给定用户的最小排名显示最大标题的结果:

id  name  number  max_title  rank
----------------------------------
1   x1    123     't3'        1
2   x2    234     't1'        3
问题更新

SELECT t1.id, t1.name, t1.number, MAX(t2.title)
FROM Table1 t1
    LEFT JOIN Table2 t2 ON t1.id = t2.tbl1id
GROUP BY t1.id, t1.name, t1.number
编辑:
-更新为使用左连接,以防表2中可能没有给定id的记录。
-答案现在是不相关的,因为问题已经改变,因为原来的一个。离开历史记录。

使用:

   SELECT t.id,
          t.name,
          t.number,
          COALESCE(x.max_title, 'no title associated') AS max_title
     FROM TABLE1 t
LEFT JOIN (SELECT t2.tbl1id,
                  MAX(t2.title) 'max_title'
             FROM TABLE2 t2
            WHERE t2.rank = (SELECT MIN(rank) 
                               FROM TABLE2 
                              WHERE tbl1id = t2.tbl1id)
         GROUP BY t2.tbl1id) x ON x.tbl1id = t.id

很抱歉,我更新了问题,但我之前的问题你是对的,没有提到这些表之间的真正关系。但是,如果“表2”中可能没有id的记录,那么只需要左连接即可。