[erlang-questions] Mnesia equivalent of SQL NOT IN

Jesper Louis Andersen <>
Sun Feb 19 22:15:27 CET 2012


On 2/19/12 3:46 PM, Ward Bekker wrote:
>
> Hi,
>
> I have two records:
>
> |-record(foo, {timestamp, name}).
> -record(bar, {timestamp, name}).
> |
>
> And I would like to execute a Mnesia query that mimics the following 
> SQL query
>
> |SELECT f.* FROM foo f WHERE f.timestamp NOT IN ( SELECT b.timestamp FROM boo b)
> |
>
> What would be an efficient Mnesia equivalent?
>
>
It depends on which indexes you have in your fine SQL database :) But 
writing a QLC (Query List Comprehension) containing a subselect should 
be possible without too much work. The question is if you get a decent 
efficiency out of it. Which is where the indexes comes into play. If you 
need this a lot, then you may need to organize your data in a shape that 
makes it efficient. The point of mnesia is that it works much like a 
modern K/V (NoSQL) store in its performance metrics - so you need to 
think about the shape of data to get it to run fast.

-- 
Jesper Louis Andersen
   Erlang Solutions Ltd., Copenhagen, DK

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120219/dae941bd/attachment.html>


More information about the erlang-questions mailing list