我不知道如何连接这两个表并获得我想要的 NULL 值的结果。我玩过LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN...,但无法让它工作。请看下面这个。
表格1:
NameID Name
1 N1
2 N2
3 N3
4 N4
5 N5
Run Code Online (Sandbox Code Playgroud)
表2:
NameID AnotherID Value
1 AID-111 1000
2 AID-222 2000
2 AID-222 3000
3 AID-333 4000
4 AID-444 5000
Select ...
JOIN Table1 and Table2
WHERE AnotherID = 'AID-222'
Run Code Online (Sandbox Code Playgroud)
这就是我想要的结果:
NameID Name AnotherID VALUE
1 N1 NULL NULL
2 N2 AID-222 2000
3 N3 AID-222 3000
4 N4 NULL NULL
5 N5 NULL NULL
Run Code Online (Sandbox Code Playgroud)
请帮忙。谢谢!
您没有解释为什么要返回2000代替的值3000,但您可以使用LEFT JOIN 带有子查询的 a 来获取结果:
select t1.nameid,
t1.name,
t2.anotherid,
t2.value
from table1 t1
left join
(
select nameid, anotherid, min(value) value
from table2
where anotherid = 'AID-222'
group by nameid, anotherid
) t2
on t1.nameid = t2.nameid;
Run Code Online (Sandbox Code Playgroud)
请参阅SQL Fiddle 演示。这给出了结果:
| NAMEID | NAME | ANOTHERID | VALUE |
--------------------------------------
| 1 | N1 | (null) | (null) |
| 2 | N2 | AID-222 | 2000 |
| 3 | N3 | (null) | (null) |
| 4 | N4 | (null) | (null) |
| 5 | N5 | (null) | (null) |
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11561 次 |
| 最近记录: |