原始查询:
SELECT *
FROM AA
FULL OUTERJOIN BB on (AA.C_ID = BB.C_ID);
Run Code Online (Sandbox Code Playgroud)
如何转换上面的查询以使其在Microsoft Access中兼容?
我假设:
SELECT *
FROM AA
FULL LEFT JOIN BB ON (AA.C_ID = BB.C_ID);
Run Code Online (Sandbox Code Playgroud)
在我正确地将第一个查询转换为与Access兼容的查询之前,我还没有处理过"FULL"标准?
这两个功能似乎与我相同.您可以看到它们在下面的代码中实现了相同的目标,因为列c和d相等.那我什么时候应该使用另一个呢?
这是一个例子:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0, 10, size=(10, 2)), columns=list('ab'))
df.loc[::2, 'a'] = np.nan
Run Code Online (Sandbox Code Playgroud)
返回:
a b
0 NaN 4
1 2.0 6
2 NaN 8
3 0.0 4
4 NaN 4
5 0.0 8
6 NaN 7
7 2.0 2
8 NaN 9
9 7.0 2
Run Code Online (Sandbox Code Playgroud)
这是我的出发点.现在我将添加两列,一列使用combine_first,另一列使用fillna,它们将产生相同的结果:
df['c'] = df.a.combine_first(df.b)
df['d'] = df['a'].fillna(df['b'])
Run Code Online (Sandbox Code Playgroud)
返回:
a b c d
0 NaN 4 4.0 4.0
1 8.0 7 8.0 8.0
2 NaN 2 2.0 …Run Code Online (Sandbox Code Playgroud) 我有一个相当标准的查询返回此表:
x 12
y 59
x 76
x 35
y 82
Run Code Online (Sandbox Code Playgroud)
我想分别对所有'x'值和所有'y'值求和.结果应该是这样的:
x 123
y 141
Run Code Online (Sandbox Code Playgroud)
如果可以在MySQL中完成,我不想这样编程.我该怎么做呢?这是我的sql查询供参考:
SELECT
tb1.val1,
tb2.val2
FROM
tb1 INNER JOIN tb2
ON
tb1.id = tb2.id
WHERE
(bunch of conditions unrelated to val1 and val2)
;
Run Code Online (Sandbox Code Playgroud)