Here is the case:
There is a user table
id email orders_counter
=================================
1 a@a.com 5
2 b@b.com 3
3 c@c.com 0
And a user data table for user’s other data
id user_id title value
=======================================
1 1 Name Peter Johnson
2 1 Tel 31546988
3 2 Name Alan Johnson
4 2 Tel 56984887
If I want to fetch all user that
1, orders_counter greater then 3
2, Name contain 'Johnson'
3, Tel contain '88'
AT THE SAME TIME
What is my sql, and if I want to do it rubyonrails way
what is the ActiveRecord code
I know I can it one by one and then join all of them together, but it waste too much resource while conditions build up
the way that you’ve got your user data table structured, you’ll almost always have to join on that table several times in order to “pivot” those values into columns. I’d recommend just creating a table that has name and tel as columns. then the query becomes a lot more simple