我有一个关于SQL Join的有趣问题.我有2个表,示例如下:
表1:ID(int),值(字符串)表
2:ID(int),ForeignID(int),(Value)
Table2中的字段ForeignID是Table1中ID的外键.对于Table1中的给定条目,我在Table2中有多个条目,如下所示:
Table1:
ID, Value
0, "Hello World"
1, "Bonjour"
Table2:
ID, ForeignID, Value
0, 0, "First entry"
1, 0, "Second entry"
2, 1, "Third entry"
Run Code Online (Sandbox Code Playgroud)
如果我做一个内部连接,如
SELECT Table1.Value, Table2. Value FROM
Table1 INNER JOIN Table2 ON Table1.ID = Table2.ForeignID
Run Code Online (Sandbox Code Playgroud)
我会的
Hello world, First entry
Hello world, Second entry
Bonjour, Third entry
Run Code Online (Sandbox Code Playgroud)
有没有办法只获得表2中的TOP条目,例如:
Hello world, First entry
Bonjour, Third entry
Run Code Online (Sandbox Code Playgroud)
这也有效:
SELECT Table1.value
, Table2.value
FROM Table1
INNER JOIN Table2 ON Table1.id = Table2.foreignID
INNER JOIN (
SELECT MIN(ID) AS ID, ForeignID
FROM Table2
GROUP BY ForeignID
) MinID ON Table2.foreignid = MinID.foreignid
AND Table2.id = MinID.id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
156 次 |
| 最近记录: |