Cory Baumer
Cory Baumer

Reputation: 427

Can I create this query with Eloquent or do I need Query Builder?

Can I use Eloquents active record to create this query or do I need to use the query builder?

SELECT
    *
FROM
    chat
    inner join chat_member as member1
        on member1.chat_id = chat.chat_id
    inner join chat_member as member2
        on member2.chat_id = chat.chat_id
WHERE
    member1.chat_member_id = $member1ID
    and member2.chat_member_id = $member2ID

Upvotes: 0

Views: 29

Answers (1)

Tharaka Dilshan
Tharaka Dilshan

Reputation: 4499

WhereHas() function is to filter from relationship queries.

Make sure you have Chat and Member Models.
And Chat Model has members() relationship.

Then you can achieve your mysql query as follow.

Chat::whereHas('members', function ($query) {
    $query->where('chat_member_id', $member1ID);
})
->whereHas('members', function($query) {
    $query->where('chat_member_id', $member2ID);
})
->get();

Update, I fixed a syntax issue

Upvotes: 1

Related Questions