首页 > 解决方案 > Laravel Raw 语句我可以根据列数据是否等于另一个表从不同的表中进行选择

问题描述

我正在使用下面的代码从 Bookings 表中选择和收集数据。

public function collection()
{


    return Booking::select(
        'id',
        'place_id',
        'payer_name',
        'user_fullname',
        'user_email',
        'user_phone',
        'user_no_of_guest',
        'user_no_of_babies',
        'user_checkin',
        'user_checkout',
        'is_approved',
        'user_promo',
        'user_payment_type',
        'user_booking_tracking_id',
        Booking::raw('(created_at +  INTERVAL 2 HOUR) AS created_at'),
        'paid_ammount'

    )->get();
}

我从中收集的数据库是这个bookings 表,我想要数据的表是这个promo_codes 表

我想选择promo_codes.promo_type,其中booking.user_promo == promo_codes.promocode,如果这有任何意义,对不起,如果问题有点令人困惑,但这是我能解释的最好的。

标签: phpmysqllaravelphpmyadmin

解决方案


试试这个查询 -

public function collection()
{
    return DB::table('bookings')->select(
        'id',
        'place_id',
        'payer_name',
        'user_fullname',
        'user_email',
        'user_phone',
        'user_no_of_guest',
        'user_no_of_babies',
        'user_checkin',
        'user_checkout',
        'is_approved',
        'user_promo',
        'user_payment_type',
        'user_booking_tracking_id',
        Booking::raw('(created_at +  INTERVAL 2 HOUR) AS created_at'),
        'paid_ammount',
        'promo_codes.promo_type'
    )->join('promo_codes', 'booking.user_promo', '=', 'promo_codes.promocode')->get();
}

推荐阅读