Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Clojure-从单独的数据库中联合两个查询_Sql_Clojure - Fatal编程技术网

Sql Clojure-从单独的数据库中联合两个查询

Sql Clojure-从单独的数据库中联合两个查询,sql,clojure,Sql,Clojure,我正在查询两个独立的数据库,想知道如何正确地合并这两个数据库的结果-如果我打印“joined”语句,SQL关键字union将与查询结果一起打印出来。尽管如果我打印“formatted”语句,我只会得到很多逗号,而不是我想要返回的数据,它们之间用逗号分隔。我已经产生的代码如下,提前感谢 dbquery1 (str "SELECT * FROM database1 WHERE xx") dbquery2 (str "SELECT * FROM database2 WHERE xx") joined

我正在查询两个独立的数据库,想知道如何正确地合并这两个数据库的结果-如果我打印“joined”语句,SQL关键字union将与查询结果一起打印出来。尽管如果我打印“formatted”语句,我只会得到很多逗号,而不是我想要返回的数据,它们之间用逗号分隔。我已经产生的代码如下,提前感谢

dbquery1 (str "SELECT * FROM database1 WHERE xx")
dbquery2 (str "SELECT * FROM database2 WHERE xx")

joined (str dbquery1 " UNION " dbquery2)
formatted (str-join \, (sort (map :data joined)))
然后返回的结果如下所示:

({:data "result1"}) UNION ({:data "result2"} {:data "result3"} {:data "result4"})
我期待着:

({:data "result1"} {:data "result2"} {:data "result3"} {:data "result4"})

您使用的是字符串,而不是数据库结果。您没有映射,因此当您对字符串调用(map:data x)时,您会得到一个nil列表,然后将其加入。为什么要将所有内容转换为字符串?先做你想做的手术,如果需要打印,请将数据转换为字符串。请问为什么不在SQL查询中使用UNION,然后对结果进行分解?我使用的编译器要求明确指定连接详细信息,因此需要单独运行查询,还需要将SQL语句转换为串。谢谢你。因此,输出准确地告诉您发生了什么:您从查询函数返回两个seq,然后将seq与它们之间的单词“UNION”连接起来。你现在让我猜不透,但也许你可以试试(读字符串):。如果所有其他方法都失败了,也许你可以尝试使用Korma,或者你将不得不使用一个函数来分解seqs并模拟联合。啊,好的,非常感谢,我从来没有听说过Korma,尽管快速浏览一下它看起来非常有用。我会试试的,再次谢谢!