要通过示例进行解释,请选择两个表A和B.
Table A
id foo
1 x
2 y
3 z
Table B
id aid bar
1 3 50
2 1 100
Run Code Online (Sandbox Code Playgroud)
一个示例连接
SELECT foo, bar FROM a, b WHERE a.id = b.aid;
Run Code Online (Sandbox Code Playgroud)
Garners的结果
foo bar
z 50
x 100
Run Code Online (Sandbox Code Playgroud)
我想要做的是获取所有值的值,foo对于没有相应bar值的任何实例,为该列返回0.
foo bar
z 50
y 0
x 100
Run Code Online (Sandbox Code Playgroud)
我最好的猜测就是这样
SELECT foo, bar AS br FROM a, b
WHERE a.id = b.aid
OR a.id NOT IN (SELECT aid FROM b);
Run Code Online (Sandbox Code Playgroud)
但是返回bar的重复值和非零值.
可能?
SELECT a.foo, COALESCE(b.bar, 0) as bar
FROM a
LEFT OUTER JOIN b ON a.id = b.aid
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |