所以我在使用的查询中有两个表:
SELECT
R.dst_ap, B.name
FROM airports as A, airports as B, routes as R
WHERE R.src_ap = A.iata
AND R.dst_ap = B.iata;
但是它引发了错误:
mismatched input 'as' expecting EOF (..., B.name FROM airports [as] A...)
无论如何,我可以在Cassandra CQL中做我正在尝试做的事情(关系是如何工作的)?
答案 0 :(得分:3)
简短的回答是,在Cassandra中没有加入。期。因此,使用基于SQL的JOIN语法将产生类似于您在上面发布的错误。
Cassandra(或任何分布式数据库)的想法是确保您的查询可以由单个节点提供服务(减少网络时间)。实际上没有办法保证可以从单个节点查询来自不同表的数据。出于这个原因,分布式连接通常被视为反模式。为此,卡桑德拉根本不允许他们。
在Cassandra中,您需要采用基于查询的建模方法。因此,可以通过从您的联接后结果集构建表格来解决此问题,该表格包含import boto
import boto.s3
from boto.s3.key import Key
import os
from os.path import join, dirname
from dotenv import Dotenv
dotenv = Dotenv(join(dirname(__file__), ".env"))
os.environ.update(dotenv)
AWS_ACCESS_KEY_ID= os.environ.get("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.environ.get("AWS_SECRET_ACCESS_KEY")
class S3FileUpload(object):
def process_item(self, item, spider):
bucket = s3.get_bucket('my-bucket')
k = Key(bucket)
k.key = 'test.json'
k.set_contents_from_string(str(item))
return item
和@media all and (max-width: 1690px) { ...}
@media all and (max-width: 1280px) { ...}
@media all and (max-width: 980px) { ... }
@media all and (max-width: 736px) { ... }
@media all and (max-width: 480px) { ... }
的所需组合。您必须找到一种适当的方法来对此表进行分区,但最终您需要基于A)您希望看到的结果集以及B)您希望在WHERE子句中过滤的属性来构建它。