加入
SELECT *
FROM a
INNER JOIN (
SELECT b.id, Count(*) AS Count
FROM b
GROUP BY b.id ) AS b ON b.id = a.id;
Run Code Online (Sandbox Code Playgroud)
侧
SELECT *
FROM a,
LATERAL (
SELECT Count(*) AS Count
FROM b
WHERE a.id = b.id ) AS b;
Run Code Online (Sandbox Code Playgroud)
我知道这里的 join 将被计算一次,然后与主请求与每个 FROM 的请求合并。
在我看来,如果 join 将几行旋转到一帧,那么效率会更高,但如果是 1 比 1,则为 LATERAL - 我认为对吗?
我正在尝试调用 api Purchases.products: get来验证您的购买,它会产生这样的结果
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "permissionDenied",
"message": "The current user has insufficient permissions to perform the requested operation."
}
],
"code": 401,
"message": "The current user has insufficient permissions to perform the requested operation."
}
}
Run Code Online (Sandbox Code Playgroud)
这里的文档说明了你可以做什么
收到的令牌不仅仅适用于任何其他 api 的购买检查,它返回结果(Inappproducts: list is work)
验证 url 构建正确,因为如果您将令牌客户端连接到服务器,那么此 api 也可以工作 - 但我需要一个服务器来进行服务器身份验证
scopes = ['https://www.googleapis.com/auth/androidpublisher']
authorization = Google::Auth.get_application_default(scopes)
uri = "https://www.googleapis.com/androidpublisher/v3/applications/#{ENV['ANDROID_PACKAGE_NAME']}/purchases/products/#{purchasable.purchase_uuid}/tokens/#{purchase_token}?access_token=#{authorization.fetch_access_token!['access_token']}" …Run Code Online (Sandbox Code Playgroud) authentication server-to-server google-oauth android-inapp-purchase