2016-09-01 2 views
0

Я хочу вставить результат первого запроса во второй запрос, мне нужно знать, как многократно вставлять значения в Cassandra Query Language. Пожалуйста, просветите меня.Для множественной вставки в cql для scala

def daomethod(seconditemtable:SecondItemTable):java.util.List[Row]={ 

    val query=session.execute("select item from itemtable").all()  //first query 

    val queryvalue=query.map(x=>x.getString("item")).toList.distinct //List(item1,item2,item3) 


    val secondquery="select * from seconditemtable where entity=? and item=? and date>=? and date<=?" //second query 

    val statement=session.prepare(secondquery) 

    val boundstatement= new Boundstatement(statement) 

    session.execute(boundstatement.bind(seconditemtable.entity,queryvalue,seconditemtable.date,seconditemtable.date)).all()  //how to insert multiple value of firstquery in item column 
} 

Заранее спасибо

ответ

0

Вы можете попробовать что-то вроде этого

val secondquery=s"select * from seconditemtable where entity=? and item in (${queryvalue.mkString(",")}) and date>=? and date<=?" 

воспользоваться CQL в заявлении. Подробнее об этом https://docs.datastax.com/en/cql/3.3/cql/cql_reference/select_r.html

+0

привет, она не принимает значения списка, оно должно быть передано одно значение, и mkstring путы «» между всеми гольцов ... спасибо в любом случае – ASCIWD

+0

'выбрать * из seconditemtable, где элемент в (item1, item2) 'является допустимым запросом cql, но вам нужно помещать кавычки вокруг 'item1', если это строка. Извините, если это не полезно. – Niakrais

+0

спасибо, что это сработало – ASCIWD

Смежные вопросы