# \[ANN\] SQLCollections.jl – use Julia data manipulation functions for databases

**URL:** <https://discourse.julialang.org/t/ann-sqlcollections-jl-use-julia-data-manipulation-functions-for-databases/119244>\
**Category:** Package Announcements\
**Tags:** query, database\
**Created:** [September 10, 2024, 9:57am UTC](https://discourse.julialang.org/t/ann-sqlcollections-jl-use-julia-data-manipulation-functions-for-databases/119244 "2024-09-10T09:57:36Z")\
**Posts on this page:** 1\
**Showing post:** 28

<div class="post-metadata">

**Author:** ![aplavin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aplavin/32/222056_2.png) [@aplavin](https://discourse.julialang.org/u/aplavin)\
**Post date:** [October 4, 2024, 2:52pm UTC](https://discourse.julialang.org/t/ann-sqlcollections-jl-use-julia-data-manipulation-functions-for-databases/119244/28 "2024-10-04T14:52:33Z")

</div>

Currently, only single-table operations are directly supported in SQLCollections.jl. However, I noticed that you can just pass any FunSQL expression as the input – not just table names!  
It enables operating on joins:

```julia
using SQLCollections
using FunSQL: From, Join, Get

X = SQLCollection(conn, From(:tbl1) |> Join(:tbl2 => From(:tbl2), Get.id .== Get.tbl2.id))

```

After that, you can work with `X` same as with any other SQLCollection. Julia and FunSQL composability make it work automatically.

_But this isn’t the same syntax as one uses with plain Julia datasets, of course.  
So I still plan to add [FlexiJoins.jl](https://discourse.julialang.org/t/ann-flexijoins-jl-fresh-take-on-joining-datasets/79655) joins support to SQLCollections 🙂_

---

_[View the full topic](https://discourse.julialang.org/t/ann-sqlcollections-jl-use-julia-data-manipulation-functions-for-databases/119244)._
