Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

kfazil's avatar

How to get records of two dates in a single query?

I have a has_many relationship with product_meta. Now I want to get product meta of all products but where product meta created on two dates like have 5/12/2020 and 09/12/2020. I don't want to get product meta between these two dates but I want to get product meta of only these two dates.

$data = Product::with(['productMeta' => function ($query) use ($date_1, $date_2) { $query->ofDate($date_1, $date_2); }])->orderBy('created_at','desc')->get();

How to improve this query to get product_meta of two specifics dates.

0 likes
5 replies
Sinnbeck's avatar
Sinnbeck
Best Answer
Level 102
$data = Product::with([
            'productMeta' => function ($query) use ($date_1, $date_2) {
                $query->whereDate('date_column', $date_1)->orWhereDate('date_column', $date_2);
            },
        ])->orderBy('created_at', 'desc')->get();

Or you can try

$data = Product::with([
            'productMeta' => function ($query) use ($date_1, $date_2) {
                $query->whereIn('date_column', [$date_1, $date_2]);
            },
        ])->orderBy('created_at', 'desc')->get();
kfazil's avatar

This works thanks, Can you also suggest how can I get only last product_meta of these dates.

$data = Product::with([ 'productMeta' => function ($query) use ($date_1, $date_2) { $query->whereDate('date_column', $date_1)->orWhereDate('date_column', $date_2)->orderBy('created_at', 'desc')->first(); }, ])->orderBy('created_at', 'desc')->get();

Does it work?

kfazil's avatar

@sinnbeck Can you please help in getting only last product_meta of these dates?

kfazil's avatar

Hi @hdsavani, Thanks for your help but I don't want to get records between two dates.

Please or to participate in this conversation.